snackbar的使用
知识点:
1、snackbar的使用和源码分析。
Google的md设计给了我们一个利用底部空间的新控件--snackbar。在不少的应用中,我们可以看到一些列表页面,一开始在底部出现一个小小的按钮条,列表往上滚动,它会向下消失;列表往下滚动时,它又出现了,点击它,可以是回到第一条或者刷新或者其它用户可能要执行的操作都可以放在那里。其实这个就很好的利用了snackbar控件,可以为用户提供更加友好而智能的操作,给用户更好的使用体验。
只有在细节上面下了功夫,用户对app使用满意了,我们开发才会有成就感。共勉。
下面我来简单说一下关于snackbar的使用,注释都在代码之中了,有疑问请查看代码注释。
snackbar的使用其实和toast的使用差不多
<span style="font-family:FangSong_GB2312;font-size:12px;">Snackbar.make(toolbar.getRootView(), "action1", Snackbar.LENGTH_LONG).setAction("queding", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "action1's click", Toast.LENGTH_LONG).show();
}
}).show();
// dismiss() dismiss the snackbar
// show() show the snackbar
</span>
下面我们结合FloatingActionButton控件来使用,下面是主要代码
<span style="font-family:FangSong_GB2312;font-size:12px;">FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "跳到首页", Snackbar.LENGTH_LONG)
.setAction("确定", new View.OnClickListener() {//这里如果第一个参数为空或者listener为null的话,那么"确定"文字则不会被显示,下面看源码
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "去到首页", Toast.LENGTH_LONG).show();
}
}).show();
}
});
</span>
这里是源码:
final TextView tv = mView.getActionView();//得到的是一个button类型的tv
if (TextUtils.isEmpty(text) || listener == null) {//如果文字为空或者是监听器为空,tv可见醒为gone
tv.setVisibility(View.GONE);
tv.setOnClickListener(null);
} else {//否则tv可见性为可见状态
tv.setVisibility(View.VISIBLE);
tv.setText(text);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onClick(view);
// Now dismiss the Snackbar
dispatchDismiss(Snackbar.Callback.DISMISS_EVENT_ACTION);
}
});
}
关于FloatingActionButton的布局文件如下
<span style="font-family:FangSong_GB2312;font-size:12px;"> <android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_dialog_email" /></span>
如有任何疑问,请联系本人,谢谢。