一个兼容沉浸式模式的可以从上部和底部弹出的snackbar库

本文介绍了一款名为TopBottomSnackBar的Android库,该库能够实现在应用中从顶部或底部弹出提示信息的功能,适用于希望统一iOS和Android UI风格的开发者。文章详细展示了如何使用该库来定制不同类型的提示信息,包括设置显示位置、使用沉浸模式、添加图标及动作等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介:

现在越来越多的app使用snackbar,google官方提供的一个提示工具,但是它只能从底部弹出来。但是在实际开发中,往往会和ios使用一套ui,ios流行从顶部弹出提示。为了同ios实现相同的效果,我特别封装了一个可以从上部和底部弹出的snackbar库,并且兼容沉浸模式,大体效果如下图:
这里写图片描述

github地址:https://github.com/wypeng2012/TopBottomSnackBar

注意:使用这个库必须api版本 >= 14

使用方法:

1. 从顶部弹出:

要想从顶部弹出,要使用TBSnackbar.STYLE_SHOW_TOP模式,具体代码如下:

/* if you use STYLE_SHOW_TOP and your activity has toolbar or
actionbar ,you should use "findViewById(android.R.id.content)",must
not use "getWindow().getDecorView()"*/
TBSnackbar.make(findViewById(android.R.id.content), "This is a top snack!", TBSnackbar.LENGTH_SHORT, TBSnackbar.STYLE_SHOW_TOP).show();

2. 从底部弹出:

要想从底部弹出,要使用TBSnackbar.STYLE_SHOW_BOTTOM模式,具体代码如下:

// if you use STYLE_SHOW_BOTTOM  ,you can use any view.But if you use
//CoordinatorLayout,you must use CoordinatorLayout.
TBSnackbar.make(findViewById(android.R.id.content), "This is a bottom snack!", TBSnackbar.LENGTH_SHORT,TBSnackbar.STYLE_SHOW_BOTTOM).show();

3. 使用沉浸模式:

使用沉浸模式,肯定是从顶部弹出,要使用TBSnackbar.STYLE_SHOW_TOP_FITSYSTEMWINDOW模式,具体代码如下:

// if you use STYLE_SHOW_TOP_FITSYSTEMWINDOW ,you must use
//getWindow().getDecorView()  android api >= 19        
TBSnackbar.make(getWindow().getDecorView(),"This is a fitsystemwindow snack!", TBSnackbar.LENGTH_SHORT,TBSnackbar.STYLE_SHOW_TOP_FITSYSTEMWINDOW).show();

4. 添加图标:

//setIconLeft(@DrawableRes int drawableRes, float sizeDp) the size is dp,24dp is ok
//if you want change the icon padding you can use setIconPadding(int padding)
//setIconRight(@DrawableRes int drawableRes, float sizeDp) you can use        
TBSnackbar snackbar = TBSnackbar.make(findViewById(android.R.id.content), "This is a left icon snack!", TBSnackbar.LENGTH_SHORT, TBSnackbar.STYLE_SHOW_TOP);
snackbar.setIconLeft(R.mipmap.ic_core,24);
snackbar.show()

5. 添加action:

//you can use it like google's SnackBar 
final TBSnackbar snackbar = TBSnackbar.make(findViewById(android.R.id.content), "This is a action snack!", TBSnackbar.LENGTH_INDEFINITE, TBSnackbar.STYLE_SHOW_TOP);
snackbar.setAction("Action", new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        snackbar.dismiss();
                    }
                });
 snackbar.show();

如何远程依赖:

1. Maven

     <dependency>  
          <groupId>com.github</groupId>  
          <artifactId>topbottomsnackbar</artifactId> 
          <version>1.1.0</version> 
          <type>pom</type> 
     </dependency>

2. Gradle

compile 'com.github:topbottomsnackbar:1.1.0'

3. Ivy

<dependency org='com.github' name='topbottomsnackbar' rev='1.1.0'>
       <artifact name='$AID' ext='pom'>
       </artifact>
</dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值