我们都知道IOS系统自带手指滑动可以返回当前界面,现在我们使用Slidr可以很简单的实现这些功能,而且可以做一些个性化得定制.
GitHub地址
ReadMe
1 首先清单文件配置我们将要滑动Activity的theme,或者在我们的Application节点下全局配置theme,在theme里面添加
<item name="android:windowIsTranslucent">trueitem>
<item name="android:windowBackground">@android:color/transparentitem>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_material_light">
2.在要滑动的Activity中OnCreate方法中使用,有三种方式
Slidr.attach(this);
Slidr.attach(this,slidrConfig);
Slidr.attach(this,statusBarColor1,statusBarColor2);
对,就简单的一行代码就可以实现手指滑动退出当前的Activity.
3.SlidrConfig的使用,可以定制化我们滑动的手势或者界面的交互等.
SlidrConfig config = new SlidrConfig.Builder()
.primaryColor(getResources().getColor(R.color.primary)
.secondaryColor(getResources().getColor(R.color.secondary)
.position(SlidrPosition.LEFT|RIGHT|TOP|BOTTOM|VERTICAL|HORIZONTAL)
.sensitivity(1f)
.scrimColor(Color.BLACK)
.scrimStartAlpha(0.8f)
.scrimEndAlpha(0f)
.velocityThreshold(2400)
.distanceThreshold(0.25f)
.edge(true|false)
.edgeSize(0.18f)
.listener(new SlidrListener(){...})
.build();
SlidrConfig是通过builder方式来设置某项参数,其中可以全部设置,也可以单独设置某项需要定制的,下面来解释一下每一个参数的含义:
Slidr的使用很简单,但需要注意的是他的滑动事件是最高级的,能抢夺一切事件,这时如果我们的项目中有ViewPager
或者RecyclerView
,他们的滑动事件都被抢夺走了 ,如果这样使用,我们滑动时都会退出当前的Activity,如果我们要处理事件,感觉非常的麻烦,这时我们为Slidr
设置config来控制他的响应事件,比如控制速度,手指滑动的距离才来响应Slidr
事件,我写了两个demo,都是用edgeSize
来控制的,
配置代码
private void initSlidr() {
SlidrConfig config=new SlidrConfig.Builder()
.position(SlidrPosition.LEFT)//滑动起始方向
.edge(true)
.edgeSize(0.18f)//距离左边界占屏幕大小的18%
.build();
Slidr.attach(this,config);
}
配置代码
private void initSlidr() {
SlidrConfig config=new SlidrConfig.Builder()
.position(SlidrPosition.TOP)//滑动起始方向
.edge(true)
.edgeSize(0.3f)//边界占屏幕大小30%
.build();
Slidr.attach(this,config);
}
Slidr的使用很简单,而且实现的效果也很棒,不影响原来Activity的生命周期,我比较喜欢,在我们的使用过程中,可以使Activity滑动退出的方向和Activity进场的方向动画设置相反的方向,这样体验也比较好,看我的gif图也做了这样的效果,同时也可以研究一下5.0之后Activity的转场动画配合Slidr使用,效果更佳,上面第二张gif图用的就是5.0之后的动画,写这篇博客也是本着推荐的态度,大家快引用到你们的项目之中吧!!