android之snackbar的使用

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>

如有任何疑问,请联系本人,谢谢。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值