Snackbar-交互按钮

2017-10-10  本文已影响0人  珞神

一、简介

二、简单使用

2.1 要先在 app 的 build.gradle 中添加依赖
//个人认为与 V7 包的版本一致最好
 compile 'com.android.support:design:25.3.1'

2.2 简单操作如下
Snackbar.make(view,"我是Snackbar",Snackbar.LENGTH_LONG).show();
Snackbar.LENGTH_SHORT //事件短,大概 1.8 秒左右
Snackbar.LENGTH_LONG // 时间长,大概 3 秒左右
Snackbar.LENGTH_INDEFINITE // 永久显示,需手动取消
2.3 添加可交互按钮
Snackbar.make(view,"我是Snackbar",Snackbar.LENGTH_LONG)
        .setAction("按钮", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                
            }
}).show();

三、主要注意的几点:

四、玩转 Snackbar

4.1 修改 Snackbar 右侧可点击按钮的颜色
        snackbar = Snackbar.make(view,"我是Snackbar",Snackbar.LENGTH_LONG)
                .setAction("按钮", new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
        snackbar.show();
        // 修改 Snackbar 右侧可点击按钮的颜色
        snackbar.setActionTextColor(Color.WHITE);
image
4.2 修改背景色 和 Snackbar 左侧文字显示颜色
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
        android:id="@+id/snackbar_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingTop="14dp"
        android:paddingBottom="14dp"
        android:paddingLeft="12dp"
        android:paddingRight="12dp"
        android:textAppearance="@style/TextAppearance.Design.Snackbar.Message"
        android:maxLines="2"
        android:layout_gravity="center_vertical|left|start"
        android:ellipsize="end"
        android:textAlignment="viewStart"/>

<Button
        android:id="@+id/snackbar_action"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="0dp"
        android:layout_marginStart="0dp"
        android:layout_gravity="center_vertical|right|end"
        android:paddingTop="14dp"
        android:paddingBottom="14dp"
        android:paddingLeft="12dp"
        android:paddingRight="12dp"
        android:visibility="gone"
        android:textColor="?attr/colorAccent"
        style="?attr/borderlessButtonStyle"/>
</merge>
snackbar = Snackbar.make(view,"我是Snackbar",Snackbar.LENGTH_INDEFINITE)
        .setAction("按钮", new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    }
});
snackbar.show();
snackbar.setActionTextColor(Color.WHITE);
setSnackbarColor();
//通过 getView() 方法获取 Snackbar 的父布局
View view = snackbar.getView();
if (view != null) {
    //设置背景色
    view.setBackgroundColor(getResources().getColor(R.color.colorAccent));
    //获取 Snackbar 左侧提示信息的控件,修改字体颜色
    ((TextView) view.findViewById(R.id.snackbar_text)).setTextColor(Color.WHITE);
}
4.3 在 Snackbar 中添加图标
上一篇 下一篇

猜你喜欢

热点阅读