Snackbar和Toast适刀、Dialog一樣,都可以作為提示存在煤蹭,但是Snackbar又和它們有所不同笔喉。
Snackbar的使用方式和Toast類似
Snackbar.make(view, "這是一個snackbar", Snackbar.LENGTH_SHORT).show();
make方法可以創(chuàng)建Snackbar實例取视,最后調用show方法顯示,效果如下:
131.gif
[設置一個action]
Snackbar snackbar = Snackbar.make(view, "這是一個snackbar", Snackbar.LENGTH_SHORT);
snackbar.setAction("取消", new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
snackbar.show();
Snackbar不支持設置多個action常挚,如果設置多個action作谭,只有最后一個生效。
Snackbar setAction(CharSequence text, final OnClickListener listener)
如果listener不為null奄毡,那么在Snackbar右側會顯示一個按鈕折欠,如圖:
圖片.png
點擊這個按鈕,底層代碼會調用銷毀Snackbar的程序吼过,相當于調用了Snackbar的dismiss方法锐秦。
[右滑刪除]
當Snackbar在CoordinatorLayout
下使用時,支持右滑刪除功能盗忱,效果如下:
132.gif
[設置顯示時長]
Snackbar make(@NonNull View view, @NonNull CharSequence text, int duration)
duration參數(shù)是Snackbar的的顯示時長酱床,它可以設置的值有三個
Snackbar.LENGTH_INDEFINITE:不確定時間,只有右滑刪除或者點擊action按鈕才可以刪除趟佃。
Snackbar.LENGTH_SHORT:時間較短扇谣。
Snackbar.LENGTH_LONG:時間較長。
[設置文本]
Snackbar設置文本的方法有兩種
- make方法里面設置
Snackbar.make(view, "這是一個snackbar", Snackbar.LENGTH_INDEFINITE);
- 使用setText方法設置
snackbar.setText("這是一個snackbar");
[設置action文本顏色]
snackbar.setActionTextColor(Color.parseColor("#ff00ff"));
圖片.png
[設置Snackbar背景色]
snackbar.getView().setBackgroundColor(Color.parseColor("#00ff00"));
效果如圖:
圖片.png
[設置padding]
snackbar.getView().setPadding(50, 50, 50 , 50);
圖片.png
[在文本前面添加圖片]
Snackbar snackbar = Snackbar.make(view, "這是一個snackbar", Snackbar.LENGTH_SHORT);
snackbar.setAction("取消", new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
TextView textView = snackbar.getView().findViewById(R.id.snackbar_text);
Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher_round);//圖片自己選擇
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
textView.setCompoundDrawables(drawable, null, null, null);
//增加文字和圖標的距離
textView.setCompoundDrawablePadding(20);
textView.setGravity(Gravity.CENTER);
snackbar.show();
圖片.png
[本章完...]