android开发之SnackBar的使用

SnackBar是一个相似于Toast的东西。它也有显示时长。可是比Toast更加灵活,同一时候。我们还能够给SnackBar设置点击事件。那么我们今天就来看看怎么用吧!

先来一张效果图:


这样的效果大家可能在一些App中已经见过。在没有SnackBar的时候,我们可能须要自己定义View来实现这样的效果,如今我们仅仅须要简单几行代码就能够实现这样的效果了,下来我们看看怎么实现这样的效果。

1.点击后弹出不带action的snackbar

snackbar = Snackbar.make(view, "Snack Bar Text", Snackbar.LENGTH_INDEFINITE);
                snackbar.show();

view是我们点击的那个View。下来的文本就是弹出框显示的文本,最后一个參数表示Snackbar的显示时长,有多种取值,例如以下:

    /**
     * Show the Snackbar indefinitely. This means that the Snackbar will be displayed from the time
     * that is {@link #show() shown} until either it is dismissed, or another Snackbar is shown.
     *
     * @see #setDuration
     */
    public static final int LENGTH_INDEFINITE = -2;

    /**
     * Show the Snackbar for a short period of time.
     *
     * @see #setDuration
     */
    public static final int LENGTH_SHORT = -1;

    /**
     * Show the Snackbar for a long period of time.
     *
     * @see #setDuration
     */
    public static final int LENGTH_LONG = 0;
这里三种值,各自是长期展示。这样的情况下要我们调用dismiss方法来关闭snackbar,或者有其它snackbar显示的时候,它也会自己主动关闭。另外一种和第三种意义和Toast几乎相同,不赘述。

关闭一个Snackbar,我们仅仅须要调用dismiss方法就可以:

snackbar.dismiss();

2.带Action的SnackBar

                Snackbar.make(view, "Snack Bar Text", Snackbar.LENGTH_LONG)
                        .setAction("Go!", new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                                startActivity(intent);
                            }
                        })
                        .setActionTextColor(Color.BLUE).show();

也能够给SnackBar设置点击事件,如上。代码非常easy。不多说。

Demo下载http://download.csdn.net/detail/u012702547/9351795


posted on 2017-05-27 17:38  wgwyanfs  阅读(195)  评论(0编辑  收藏  举报

导航