What's SnackBar ? 讓我們看一下下面的圖片
SnackBar我們可以理解為進階版的toast
例如說當用戶刪除了某項商品,我們其實無法用比較不擾人的方式
去提示用戶是否要刪除該商品
如果用dialog 非常擾人
如果用toast 非常無感...而且無法做任何undo的動作
SnackBar應該是比較折衷的方式,利用show出一小段提示,讓用戶有機會可以反悔
講了那麼多我們要來介紹來如何實做了
要使用SnackBar我們只需要
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override public void onClick (View view){
SpannableString s = new SpannableString("you just remove this product");
s.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Snackbar.make(view, s, Snackbar.LENGTH_SHORT).setAction("undo", new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("Ted", "do click");
}
}).setActionTextColor(Color.parseColor("#FF2750")).show();
}
});
如上使用 Snackbar.make(...).show()就可以了,比較跟toast不同的地方在於,
snackbar需要view,而且文字可以換色,並且擁有click event,
在這邊還有一件事情要特別提到,Snackbar並沒有提供設定左邊文字顏色的api,
不過我們可以利用SpannableString來換色,如上面的sample code
我想之後很多app都會使用到這樣的特效吧. 個人真的認為還蠻實用的!!
沒有留言:
張貼留言