简易消息提示框 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://www.codercto.com/soft/d/4245.html

The Master Switch

The Master Switch

Tim Wu / Knopf / 2010-11-2 / USD 27.95

In this age of an open Internet, it is easy to forget that every American information industry, beginning with the telephone, has eventually been taken captive by some ruthless monopoly or cartel. Wit......一起来看看 《The Master Switch》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试