可上滑下滑关闭Activity或视图:SwipableLayout
jopen
9年前
可上滑下滑关闭Activity或视图,滑动到一定状态表示退出这个布局,并提供一个退出事件的回到方法。可以利用它来做出下滑(或者上滑)退出activity的效果(demo所示)。
下载
Maven:
<dependency> <groupId>com.serhatsurguvec.libraries</groupId> <artifactId>swipablelayout</artifactId> <version>0.0.1</version> </dependency>
Gradle:
dependencies { compile 'com.serhatsurguvec.libraries:swipablelayout:0.0.1' }
使用
<?xml version="1.0" encoding="utf-8"?> <com.serhatsurguvec.swipablelayout.SwipeableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipableLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/darker_gray" android:orientation="vertical"> <!--这里添加你的子View--> </com.serhatsurguvec.swipablelayout.SwipeableLayout>
想做到退出activity的效果,需要特定的主题:无actionbar,窗口透明,无窗口动画,因此需要把这些代码添加到swiping activity的主题。
<item name="windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowAnimationStyle">@null</item>
添加一个检测关闭listener,根据退出回调方法调用activity的退出方法就能实现滑动退出的效果。
SwipeableLayout swipeableLayout = (SwipeableLayout) findViewById(R.id.swipableLayout); swipeableLayout.setOnLayoutCloseListener(new SwipeableLayout.OnLayoutCloseListener() { @Override public void OnLayoutClosed() { //这里调用activity的退出方法。 } });