简易消息提示框 SnackbarUtils

码农软件 · 软件分类 · Android UI 组件 · 2019-04-23 22:14:01

软件介绍

Snackbar 在项目中的使用场景越来越多,可全面的替代 Toast,比 Toast 有更好的体验。该工具类可以方便的对 Snackbar 的样式,显示时间,位置等属性进行设置,方法比较丰富,调用简单,应该可以满足 Snackbar 绝大部分的使用场景!

截屏:

  

功能点及对应的方法:

设置 Snackbar 显示时间长短

1.1:Snackbar.LENGTH_SHORT       {@link SnackbarUtils#Short(View, String)}
1.2:Snackbar.LENGTH_LONG        {@link SnackbarUtils#Long(View, String)}
1.3:Snackbar.LENGTH_INDEFINITE  {@link SnackbarUtils#Indefinite(View, String)}
1.4:CUSTOM                      {@link SnackbarUtils#Custom(View, String, int)}

设置 Snackbar 背景颜色

2.1:color_info      {@link SnackbarUtils#info()}
2.2:color_confirm   {@link SnackbarUtils#confirm()}
2.3:color_warning   {@link SnackbarUtils#warning()}
2.4:color_danger    {@link SnackbarUtils#danger()}
2.5:CUSTOM          {@link SnackbarUtils#backColor(int)}

设置 TextView(@+id/snackbar_text) 的文字颜色

{@link SnackbarUtils#messageColor(int)}

设置 Button(@+id/snackbar_action) 的文字颜色

{@link SnackbarUtils#actionColor(int)}

设置Snackbar背景的透明度

{@link SnackbarUtils#alpha(float)}

设置 Snackbar 显示的位置

{@link SnackbarUtils#gravityFrameLayout(int)}
{@link SnackbarUtils#gravityCoordinatorLayout(int)}
6.1:Gravity.TOP;
6.2:Gravity.BOTTOM;
6.3:Gravity.CENTER;

设置 Button(@+id/snackbar_action) 文字内容 及 点击监听

{@link SnackbarUtils#setAction(int, View.OnClickListener)}
{@link SnackbarUtils#setAction(CharSequence, View.OnClickListener)}

设置 Snackbar 展示完成 及 隐藏完成 的监听

{@link SnackbarUtils#setCallback(Snackbar.Callback)}

设置 TextView(@+id/snackbar_text) 左右两侧的图片

{@link SnackbarUtils#leftAndRightDrawable(Drawable, Drawable)}
{@link SnackbarUtils#leftAndRightDrawable(Integer, Integer)}

设置 TextView(@+id/snackbar_text) 中文字的对齐方式

默认效果就是居左对齐
{@link SnackbarUtils#messageCenter()}   居中对齐
{@link SnackbarUtils#messageRight()}    居右对齐
注意:这两个方法要求SDK>=17.{@link View#setTextAlignment(int)}
    本来想直接设置Gravity,经试验发现在 TextView(@+id/snackbar_text)上,design_layout_snackbar_include.xml
    已经设置了android:textAlignment="viewStart",单纯设置Gravity是无效的.
    TEXT_ALIGNMENT_GRAVITY:{@link View#TEXT_ALIGNMENT_GRAVITY}

向 Snackbar 布局中添加 View(Google 不建议,复杂的布局应该使用 DialogFragment 进行展示)

{@link SnackbarUtils#addView(int, int)}
{@link SnackbarUtils#addView(View, int)}
注意:使用addView方法的时候要注意新加布局的大小和Snackbar内文字长度,Snackbar过大或过于花哨了可不好看

设置 Snackbar 布局的外边距

{@link SnackbarUtils#margins(int)}
{@link SnackbarUtils#margins(int, int, int, int)}
注意:经试验发现,调用margins后再调用 gravityFrameLayout,则margins无效.
    为保证margins有效,应该先调用 gravityFrameLayout,在 show() 之前调用 margins
    SnackbarUtils.Long(bt9,"设置Margin值").backColor(0XFF330066).gravityFrameLayout(Gravity.TOP).margins(20,40,60,80).show();

设置 Snackbar 布局的圆角半径值

{@link SnackbarUtils#radius(float)}

设置 Snackbar 布局的圆角半径值及边框颜色及边框宽度

{@link SnackbarUtils#radius(int, int, int)}

设置 Snackbar 显示在指定View的上方

{@link SnackbarUtils#above(View, int, int, int)}
注意:
    1:此方法实际上是 {@link SnackbarUtils#gravityFrameLayout(int)}和{@link SnackbarUtils#margins(int, int, int, int)}的结合.
        不可与 {@link SnackbarUtils#margins(int, int, int, int)} 混用.
    2:暂时仅仅支持单行Snackbar,因为方法中涉及的{@link SnackbarUtils#calculateSnackBarHeight()}暂时仅支持单行Snackbar高度计算.

设置 Snackbar 显示在指定 View 的下方

{@link SnackbarUtils#bellow(View, int, int, int)}
注意:同15

示例:

在Activity中:
int total = 0;
int[] locations = new int[2];
getWindow().findViewById(android.R.id.content).getLocationInWindow(locations);
total = locations[1];
SnackbarUtils.Custom(bt_multimethods,"10s+左右drawable+背景色+圆角带边框+指定View下方",1000*10)
    .leftAndRightDrawable(R.mipmap.i10,R.mipmap.i11)
    .backColor(0XFF668899)
    .radius(16,1,Color.BLUE)
    .bellow(bt_margins,total,16,16)
    .show();

本文地址:https://codercto.com/soft/d/4245.html

C++ Primer 中文版(第 5 版)

C++ Primer 中文版(第 5 版)

[美] Stanley B. Lippman、[美] Josée Lajoie、[美] Barbara E. Moo / 王刚、杨巨峰 / 电子工业出版社 / 2013-9-1 / CNY 128.00

这本久负盛名的 C++经典教程,时隔八年之久,终迎来史无前例的重大升级。除令全球无数程序员从中受益,甚至为之迷醉的——C++ 大师 Stanley B. Lippman 的丰富实践经验,C++标准委员会原负责人 Josée Lajoie 对C++标准的深入理解,以及C++ 先驱 Barbara E. Moo 在 C++教学方面的真知灼见外,更是基于全新的 C++11标准进行了全面而彻底的内容更新。......一起来看看 《C++ Primer 中文版(第 5 版)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具