Toast用于告知用戶發生了什么,但不與用戶交互
Snackbar在Toast的基礎上,在提示中加入了一個可交互按鈕
Snackbar.make(v,"To Top?",Snackbar.LENGTH_SHORT)
.setAction("Yes",new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(MainActivity.this,"to top",
Toast.LENGTH_SHORT).show();
}
}).show();
make的第一個參數View:傳入當前界面布局的任意一個view即可,snackbar使用這個view來自動查找最外層的布局,用于展示snackbar
setAction()設置一個動作
snackbar是在屏幕下方彈出的,此時會遮擋住屏幕下方的控件,但項懸浮按鈕是不應該被遮擋的,應該隨著snackbar的彈出向上偏移
這就要用的CoordinatorLayout布局,該布局是FrameLayout的加強版,可以監聽其所有子控件的各種事件,然后自動做出合理相應
比如CoordinatorLayout監聽到Snackbar的彈出事件(將第一個參數設為CoordinatorLayout的子控件),那么它會自動將內部的FloatingActionButton向上偏移,從而確保不會被遮擋
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">