Sackbar在项目中的使用场景越来越多,可全面的替代Toast,比Toast有更好的体验。该工具类可以方便的对Sackbar的样式,显示时间,位置等属性进行设置,方法比较丰富,调用简单,应该可以满足Sackbar绝大部分的使用场景!
截屏:功能点及对应的方法:
设置Sackbar显示时间长短
1.1:Sackbar.LENGTH_SHORT {@lik SackbarUtils#Short(View, Strig)}1.2:Sackbar.LENGTH_LONG {@lik SackbarUtils#Log(View, Strig)}1.3:Sackbar.LENGTH_INDEFINITE {@lik SackbarUtils#Idefiite(View, Strig)}1.4:CUSTOM {@lik SackbarUtils#Custom(View, Strig, it)}设置Sackbar背景颜色
2.1:color_ifo {@lik SackbarUtils#ifo()}2.2:color_cofirm {@lik SackbarUtils#cofirm()}2.3:color_warig {@lik SackbarUtils#warig()}2.4:color_dager {@lik SackbarUtils#dager()}2.5:CUSTOM {@lik SackbarUtils#backColor(it)}设置TextView(@+id/sackbar_text)的文字颜色
{@lik SackbarUtils#messageColor(it)}设置Butto(@+id/sackbar_actio)的文字颜色
{@lik SackbarUtils#actioColor(it)}设置Sackbar背景的透明度
{@lik SackbarUtils#alpha(float)}设置Sackbar显示的位置
{@lik SackbarUtils#gravityFrameLayout(it)}{@lik SackbarUtils#gravityCoordiatorLayout(it)}6.1:Gravity.TOP;6.2:Gravity.BOTTOM;6.3:Gravity.CENTER;设置Butto(@+id/sackbar_actio)文字内容及点击监听
{@lik SackbarUtils#setActio(it, View.OClickListeer)}{@lik SackbarUtils#setActio(CharSequece, View.OClickListeer)}设置Sackbar展示完成及隐藏完成的监听
{@lik SackbarUtils#setCallback(Sackbar.Callback)}设置TextView(@+id/sackbar_text)左右两侧的图片
{@lik SackbarUtils#leftAdRightDrawable(Drawable, Drawable)}{@lik SackbarUtils#leftAdRightDrawable(Iteger, Iteger)}设置TextView(@+id/sackbar_text)中文字的对齐方式
默认效果就是居左对齐{@lik SackbarUtils#messageCeter()} 居中对齐{@lik SackbarUtils#messageRight()} 居右对齐注意:这两个方法要求SDK>=17.{@lik View#setTextAligmet(it)} 本来想直接设置Gravity,经试验发现在 TextView(@+id/sackbar_text)上,desig_layout_sackbar_iclude.xml 已经设置了adroid:textAligmet="viewStart",单纯设置Gravity是无效的. TEXT_ALIGNMENT_GRAVITY:{@lik View#TEXT_ALIGNMENT_GRAVITY}向Sackbar布局中添加View(Google不建议,复杂的布局应该使用DialogFragmet进行展示)
{@lik SackbarUtils#addView(it, it)}{@lik SackbarUtils#addView(View, it)}注意:使用addView方法的时候要注意新加布局的大小和Sackbar内文字长度,Sackbar过大或过于花哨了可不好看设置Sackbar布局的外边距
{@lik SackbarUtils#margis(it)}{@lik SackbarUtils#margis(it, it, it, it)}注意:经试验发现,调用margis后再调用 gravityFrameLayout,则margis无效. 为保证margis有效,应该先调用 gravityFrameLayout,在 show() 之前调用 margis SackbarUtils.Log(bt9,"设置Margi值").backColor(0XFF330066).gravityFrameLayout(Gravity.TOP).margis(20,40,60,80).show();设置Sackbar布局的圆角半径值
{@lik SackbarUtils#radius(float)}设置Sackbar布局的圆角半径值及边框颜色及边框宽度
{@lik SackbarUtils#radius(it, it, it)}设置Sackbar显示在指定View的上方
{@lik SackbarUtils#above(View, it, it, it)}注意: 1:此方法实际上是 {@lik SackbarUtils#gravityFrameLayout(it)}和{@lik SackbarUtils#margis(it, it, it, it)}的结合. 不可与 {@lik SackbarUtils#margis(it, it, it, it)} 混用. 2:暂时仅仅支持单行Sackbar,因为方法中涉及的{@lik SackbarUtils#calculateSackBarHeight()}暂时仅支持单行Sackbar高度计算.设置Sackbar显示在指定View的下方
{@lik SackbarUtils#bellow(View, it, it, it)}注意:同15示例:在Activity中:it total = 0;it[] locatios = ew it[2];getWidow().fidViewById(adroid.R.id.cotet).getLocatioIWidow(locatios);total = locatios[1];SackbarUtils.Custom(bt_multimethods,"10s+左右drawable+背景色+圆角带边框+指定View下方",1000*10) .leftAdRightDrawable(R.mipmap.i10,R.mipmap.i11) .backColor(0XFF668899) .radius(16,1,Color.BLUE) .bellow(bt_margis,total,16,16) .show();
评论