咱們來看看谷歌Design包里的SnackBar


前言

忙忙忙,每到周五都想到寫一篇博客,每次都是心有余而力不足啊,上周末自己的一個小項目也開始動工, 然后基本打算就是全部用5.0/6.0新特性,盡量用Google原生的控件,所以又沒有什么時間,今天也就速戰速決,給大家講一講Android Support Design Library庫的控件吧,空間有點多,今天就稍微看下SnackBar

簡介

請先把Android Support Design Library升級到最新,然后在app.gradle文件中加上
compile ‘com.android.support:design:23.2.0’

Snackbar:
1.簡單理解,就是Toast的升級版,相比Toast多了一個Action
2.配合CoordinatorLayout還支持手勢滑出

先看看具體是個什么東西哈~
這里寫圖片描述
來,怎么用呢,其實用法真的和Toast太像了,看代碼:

/**
* 顯示一個有Action的Toast
* */

public Snackbar showSnackbar(View view ,String text , final OnSnackbarCallBack mSnaSnackbarCallBack){
if(view == null){
return null;
}
Snackbar mSnackbar = Snackbar.make(view,text,Snackbar.LENGTH_LONG)
.setActionTextColor(getResources().getColor(R.color.white1));
if(null != mSnaSnackbarCallBack){
mSnackbar.setAction("確定", new View.OnClickListener() {
@Override
public void onClick(View v) {
mSnaSnackbarCallBack.callBack();
}
});
}
mSnackbar.show();
mSnackbar.getView().setBackgroundColor(getResources().getColor(R.color.theme));
return mSnackbar;
}

這是我已經打包到Base類中的一個方法,用法就不說了,大家一眼就能看懂,我們來說下要注意的地方
1. make()方法的第一個參數的view,是不能有一個ScrollView.因為SnackBar的實現邏輯是往這個View去addView.而ScrollView我們知道,是只能有一個Child的.否則會Exception.所以注意。
2. 如果大家想把Toast換成Snackbar,大家要注意鍵盤的隱藏,以往的Toast是懸浮在上面的,而Snackbar是直接加入進去的哦
3. 我的這個用法的話主要是集成在BaseActivity,后期的Activity可以直接調用showSnackbar();

showSnackbar(home_content, "歡迎來到比比通!", null);

如果還要添加動作的話,那就這樣:

showSnackbar(home_content, "歡迎來到比比通!", new OnSnackbarCallBack() {
@Override
public void callBack() {
//需要處理的邏輯
}
});

總結

Snackbar的確是一個非常簡單的東西,相比Toast可能更多的是一些新奇吧,現在越來越多公司都用Google原生的控件了,也不再是以前的花花世界,個人感覺還是蠻喜歡的,一款App如果全部都用的是新特性那感覺肯定是不一樣的。~代碼就不貼了,這是我個人項目中拿的一點段。。。沒時間寫,就給大家分享一下。

end:周末愉快~


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com