原文:http://davinci42.github.io/AndroidDesignSupportLibrary-2-Snackbar/ 

本文翻译自 Part 2 – Welcome Snackbar, Goodbye Toast!

作者 Paresh Mayani

Snackbar 是 Android design support library 中的另一个组件。使用 Snackbar,可以在屏幕底部快速的显示一条消息,大体与 Toast 相同,但多了几分灵活性:

  • 一小段时间之后、或者用户与屏幕触发交互,Snackbar 会自动消失;

  • 可以包含一个可选的操作;

  • 把 Snackbar 划出屏幕,可以弃用;

  • 作为一条上下文敏感的消息,也是 UI 的一部分,并在屏幕内所有元素的上层显示,而不是像 Toast 消息一样位于屏幕中央;

  • 一个时刻只能有唯一一个 Snackbar 显示.

语法规则 s

Snackbar.make(view, message, duration)
        .setAction(action message, click listener)
        .show(); 

方法:

  • make()

  • setAction()

  • show()

属性:

  • make() 方法的第一个参数是一个 view,snackbar 会找到一个父 view,以寄存所赋的 snackbar 值。Snackbar 会沿着 view 的树状路径,找到第一个合适的布局或窗口视图,作为父 view。

  • 上文提到,持续时间属性与 Toast 的相同,可选 LENG_SHORT 或者 LENGTH_LONG。

举例:

Snackbar.make(rootlayout, "Hello SnackBar!", Snackbar.LENGTH_SHORT)
        .setAction("Undo", new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        // Perform anything for the action selected
        }
        })
        .show(); 

同时按照文档中描述:

在项目的 view 中添加 CoordinatorLayout,可以支持 snackbar 的更多特性,比如滑动消失,和 FAB 的自动移动。


配置 Snackbar:

可以使用 setActionTextColor 和 setDuration 等选项,配置 snackbar:

Snackbar.make(rootlayout, "Hello SnackBar!", Snackbar.LENGTH_SHORT)
        .setAction("Undo", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Perform anything for the action selected
            }
        })
        .setActionTextColor(R.color.material_blue)
        .setDuration(4000).show(); 
参考:  Snackbar | Android Developers
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐