强烈建议与StatusBarUtil结合着一起使用
保证栈底活动的主题是不透明的。例如demo中的首个活动是SplashActivity,进入主界面后SplashActivity就销毁了,此时MainActivity就是栈底Activity,需保证MainActivity的主题不透明
把该崩溃界面里比较特殊的View class添加到集合中作为「BGASwipeBackHelper.init」的第2个参数,例如地图控件。目前在库中已经添加了WebView和SurfaceView,不用再次添加这两个了
普通滑动返回样式 | 微信滑动返回样式 |
---|---|
![]() |
![]() |
配合滑动删除列表一起使用 | 配合RecycerView一起使用 |
---|---|
![]() |
![]() |
点击下载BGASwipeBackLayoutDemo.apk或扫描下面的二维码安装
bga-swipebacklayout后面的「latestVersion」指的是左边这个下载徽章后面的「数字」,请自行替换。
依赖{
编译“ cn.bingoogolapple:bga-swipebacklayout:latestVersion @ aar '
//换成己工程里依赖的支持-V4的版本
编译 ' com.android.support:support-v4:25.2.0 '
}
公共 类 App 扩展 应用程序 {
@Override
public void onCreate(){
super 。的onCreate();
/ * *
*必须在应用程序的onCreate方法中执行BGASwipeBackHelper.init来初始化滑动返回
*第一个参数:应用程序上下文
*第二个参数:如果发现滑动返回后立即触摸界面时应用崩溃,请把该界面里比较特殊的View类添加到该集合中,目前在库中已经添加了WebView和SurfaceView
* / BGASwipeBackHelper 。init( this, false, null);
}
}
公共 抽象 类 BaseActivity 扩展了 AppCompatActivity 实现的 BGASwipeBackHelper。委托 {
受保护的 BGASwipeBackHelper mSwipeBackHelper;
受保护的 工具栏 mToolbar;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState){
// “必须在应用程序的onCreate方法中执行BGASwipeBackHelper.init来初始化滑动返回”
//在super.onCreate(savedInstanceState)之前调用该方法
initSwipeBackFinish();
超级。的onCreate(savedInstanceState);
}
/ * *
*初始化滑动返回。在super.onCreate(savedInstanceState)之前调用该方法
* / private void initSwipeBackFinish(){
mSwipeBackHelper = new BGASwipeBackHelper(this,this);
// “必须在应用程序的onCreate方法中执行BGASwipeBackHelper.init来初始化滑动返回”
//下面几项可以不配置,这里只是为了讲述接口用法。
//设置滑动返回是否可用。默认值为true
mSwipeBackHelper。setSwipeBackEnable( true);
//设置是否仅仅跟踪左侧边缘的滑动返回。默认值为true
mSwipeBackHelper。setIsOnlyTrackingLeftEdge( true);
//设置是否是微信滑动返回样式。默认值为true
mSwipeBackHelper。setIsWeChatStyle( true);
//设置阴影资源id。默认值为R.drawable.bga_sbl_shadow
mSwipeBackHelper。setShadowResId( ř 。抽拉。 bga_sbl_shadow);
//设置是否显示滑动返回的阴影效果。默认值为true
mSwipeBackHelper 。setIsNeedShowShadow(true);
//设置阴影区域的透明度是否根据滑动的距离渐变。默认值为true
mSwipeBackHelper 。setIsShadowAlphaGradient(true);
//设置触发释放后自动滑动返回的阈值,默认值为0.3f
mSwipeBackHelper 。setSwipeBackThreshold(0.3f);
//设置底部导航条是否悬浮在内容上,默认值为false
mSwipeBackHelper 。setIsNavigationBarOverlap(false);
}
/ * *
*是否支持滑动返回。这里在父类中默认返回true来支持滑动返回,如果某个界面不想支持滑动返回则重写该方法返回false即可
*
* @return
* / @Override public boolean isSupportSwipeBack(){
return true ;
}
/ * *
*正在滑动返回
*
* @参数slideOffset从0到1
* / @覆盖公共空隙onSwipeBackLayoutSlide(浮动slideOffset){
}
/ * *
*没达到滑动返回的阈值,取消滑动返回动作,回到默认状态
* / @覆盖公共空隙onSwipeBackLayoutCancel(){
}
/ * *
*滑动返回执行完毕,销毁当前活动
* / @覆盖公共空隙onSwipeBackLayoutExecuted(){
mSwipeBackHelper 。swipeBackward();
}
@覆盖
公共 空隙 onBackPressed(){
//正在滑动返回的时候取消返回按钮事件
如果(mSwipeBackHelper 。 isSliding()){
返回 ;
}
mSwipeBackHelper 。落后();
}
}
热门源码
鲁公网安备 37010202002306号