Snackbar的使用,设置背景颜色,字体属性等
2016-11-24 17:41
405 查看
Snackbar类似于Toast,不同之处在于Snackbar显示于底部,覆盖式显示。
其优点如下:
1. 配合CoordinatorLayout使用,SnackBar可以被Swipe手势划走;
2. setAction功能.在SnackBar上可以设定一个按钮。
相比于Toast不足之处:
由于Snackbar的类用final申明了,因此你无法通过继承来重写里面的一些方法,同时Snackbar没有提供setView方法,因此你无法定义自己想要的Snackbar布局,同时也没有提供直接改变背景颜色等属性的方法。
导入对应的库
具体实现:
1.显示一个默认的Snackbar,想显示Toast一样简单
属性说明:
make()方法的第一个参数是一个view,snackbar会试着寻找一个父view来hold这个view。Snackbar将遍历整个view tree来寻找一个合适的父view,它可能是一个coordinatorLayout也可能是window decor’s content view,随便哪一个都行。
正如上面所提到,duration参数和Toast中的duration参数类似,只能是LENGTH_SHORT 或
LENGTH_LONG,不能是其它任何随机数。
实现:
显示效果:
2.显示一个带按钮的Snackbar
实现:
显示效果:
3.你可能觉得不够好看,想改变背景颜色,或者字体的颜色的属性,那么请看如下实现
实现:
设置click的字体颜色
设置Snackbar的背景颜色
设置内容字体的颜色,大小
我们可以从Snackbar的源码中看到其View的布局文件
从而得到snackbar_text为其内容的TextView,借此我们可以来改变其属性。当然那按钮的属性也可以通过此种方法进行改变(snackbar_action 为TextView)。
显示效果
4.或许你觉得想添加滑掉功能,那么请看如下实现
只需要布局使用为CoordinatorLayout即可
实现:
显示效果:
ok,动手试试吧!
其优点如下:
1. 配合CoordinatorLayout使用,SnackBar可以被Swipe手势划走;
2. setAction功能.在SnackBar上可以设定一个按钮。
相比于Toast不足之处:
由于Snackbar的类用final申明了,因此你无法通过继承来重写里面的一些方法,同时Snackbar没有提供setView方法,因此你无法定义自己想要的Snackbar布局,同时也没有提供直接改变背景颜色等属性的方法。
使用方法如下
准备:导入对应的库
具体实现:
1.显示一个默认的Snackbar,想显示Toast一样简单
属性说明:
make()方法的第一个参数是一个view,snackbar会试着寻找一个父view来hold这个view。Snackbar将遍历整个view tree来寻找一个合适的父view,它可能是一个coordinatorLayout也可能是window decor’s content view,随便哪一个都行。
正如上面所提到,duration参数和Toast中的duration参数类似,只能是LENGTH_SHORT 或
LENGTH_LONG,不能是其它任何随机数。
实现:
Snackbar.make(view,"Hello Snackbar",Snackbar.LENGTH_LONG).show();
显示效果:
2.显示一个带按钮的Snackbar
实现:
Snackbar snackbar = Snackbar.make(view,"Hello Snackbar",Snackbar.LENGTH_LONG); //设置按钮,名字为click snackbar.setAction("click", new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getBaseContext(),"action clicked",Toast.LENGTH_SHORT).show(); } });
显示效果:
3.你可能觉得不够好看,想改变背景颜色,或者字体的颜色的属性,那么请看如下实现
实现:
设置click的字体颜色
snackbar.setActionTextColor(Color.BLUE);
设置Snackbar的背景颜色
View mView = snackbar.getView(); mView.setBackgroundColor(Color.BLUE);
设置内容字体的颜色,大小
//click的字体颜色 snackbar.setActionTextColor(Color.GREEN); //内容的字体颜色与大小 TextView tvSnackbarText = (TextView) mView.findViewById(android.support.design.R.id.snackbar_text); tvSnackbarText.setText("hello world"); tvSnackbarText.setTextColor(Color.RED); tvSnackbarText.setTextSize(30);
我们可以从Snackbar的源码中看到其View的布局文件
从而得到snackbar_text为其内容的TextView,借此我们可以来改变其属性。当然那按钮的属性也可以通过此种方法进行改变(snackbar_action 为TextView)。
显示效果
4.或许你觉得想添加滑掉功能,那么请看如下实现
只需要布局使用为CoordinatorLayout即可
实现:
<android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="bn2" android:text="改变背景字体等属性的Snackbar"/> </android.support.design.widget.CoordinatorLayout>
显示效果:
ok,动手试试吧!
相关文章推荐
- TextView设置超链接、背景颜色、字体颜色等等,Spannable的使用。
- TextView设置超链接、背景颜色、字体颜色等等,Spannable的使用。
- 快速设置UINavbar的属性包括背景 title的颜色字体以及改变返回键的图片
- 通过 WM_CTLCOLOR 设置VC 组合框显示属性(字体、颜色、背景)
- 使用RGB值填充窗口背景 设置字体颜色
- eclipse使用教程系列五:调优,启动参数设置,字体,背景颜色,编码格式等常用设置大全
- 关于设置对话框的背景颜色,和设置控件的字体颜色或背景颜色
- 在使用SDK进行编译时,在文档类中设置背景颜色的元数据格式
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- CMD窗口标题及字体颜色、背景颜色设置
- VC控制台输出时设置字体及背景颜色
- gtk 设置标签(label)里字体的大小 颜色等属性的方法
- Flex中通过设置opaqueBackground属性给RadioButton控件设置不透明的背景颜色的例子
- 使用IDISPLAY_SetColor设置字体颜色的方法
- extjs grid设置某列背景颜色和字体颜色
- 对话框控件背景、字体颜色设置
- 设置对话框背景颜色及字体颜色
- extjs grid设置某列背景颜色和字体颜色的方法
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
- MFC如何设置对话框的背景和字体颜色