美文网首页IT面试Android开发移动开发
安卓通知控件SnackBar解析

安卓通知控件SnackBar解析

作者: 牧童遥指2000 | 来源:发表于2016-12-31 15:22 被阅读86次

    安卓常用的控件包括Toast和Dilalog。先介绍一下他们。

    Dilalog

    Dialog的作用是给用户一个提示信息,并让用户根据提示做出判断。而Dialog的特征就是,它会阻止你原本正在进行的操作,必须停止下来对Dialog进行处理。但是,大多数的人可能并不喜欢这样被打断,也许用户正在处理一项重要的操作,突然弹出一个Dialog遮挡住了他原本的操作,这个时候用户会变得很恼火。
    因此,使用Dialog的时候还是谨慎一点比较好,尽量不要给用户带来糟糕的体验感。

    Toast

    Toast的作用是告诉用户现在发生了什么事情,不会阻挡用户的操作,但同时用户只能被动接收这个事情,因为没有什么办法来让用户是选择同意还是拒绝。
    虽说Toast在用户体验方面要比Dialog好一些,但是也要慎用,尤其是涉及到一些敏感操作的时候。比如说删除数据,只给用户一个提示:“你的数据已被删除”,而不给用户选择是否要删除的机会,这个时候用户可能就要暴走了。

    为什么要用SnackBar

    如果说Dialog和Toast是两个极端的话,那么Snackbar就是处于中间的位置了。Snackbar和Toast比较相似,但是用途更加广泛,并且它是可以和用户进行交互的。Snackbar使用一个动画效果从屏幕的底部弹出来,过一段时间后也会自动消失。

    总之

    Dialog:当提示信息是至关重要的,并且必须要由用户做出决定才能继续的时候,使用Dialog。 Toast:当提示信息只是告知用户某个事情发生了,用户不需要对这个事情做出响应的时候,使用Toast。 Snackbar:以上两者之外的任何其他场景,Snackbar可能会是你最好的选择。
    Snackbar用法
    在使用Snackbar之前,首先需要在app/build.gradle中添加相应的依赖:
    dependencies { compile 'com.android.support:design:23.4.0'}

    Snackbar.make(view, "data deleted",Snackbar.LENGTH_LONG) .setAction("Undo", new View.OnClickListener(){ @Override public void onClick(View v) { } }) .show();

    这里调用Snackbar的make()方法来创建一个Snackbar对象,make()方法的第一个参数需要传入一个view,只要是当前界面布局的任意一个view都可以,Snackbar会使用这个view来自动查找最外层的布局,用于展示Snackbar。第二个参数就是Snackbar中显示的内容,第三个参数是Snackbar显示的时长。这些和Toast都是类似的。
    接着这里又调用了一个setAction()方法来设置一个动作,从而让Snackbar不仅仅是一个提示,而是可以和用户进行交互的。最后调用show()方法让Snackbar显示出来。

    效果如下图所示: 这里写图片描述 Snackbar的效果有点类似于Toast,不过它是从屏幕底部弹出来的。另外Snackbar上面可以加入和用户交互的按钮,比如删除数据的时候给用户一个Undo的选项,从这些小的细节方面都可以提升很多的用户体验。

    Snackbar注意事项

    短文本
    通常 Snackbar 的高度应该仅仅用于容纳所有的文本,而文本应该与执行的操作相关。Snackbar 中不能包含图标,操作只能以文本的形式存在。
    最多0-1个操作,不包含取消按钮
    当一个动作发生的时候,应当符合提示框和可用性规则。当有2个或者2个以上的操作出现时,应该使用提示框而不是 Snackbar,即使其中的一个是取消操作。如果 Snackbar 中提示的操作重要到需要打断屏幕上正在进行的操作,那么理当使用提示框而非 Snackbar。
    以上是引用自google官方文档
    另外还有一个特点:
    暂时性
    为了保证可用性,Snackbar 不应该成为通往核心操作的唯一方式。作为在所有层的上方,Snackbar 不应该持续存在或相互堆叠。

    总结

    SnackBar提供了很好的交互体验,希望后面大家可以引用它。
    我的微信二维码如下


    这里写图片描述

    微信订阅号二维码如下:


    这里写图片描述

    相关文章

      网友评论

      本文标题:安卓通知控件SnackBar解析

      本文链接:https://www.haomeiwen.com/subject/bfavvttx.html