可上滑下滑关闭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的退出方法。              }          });

项目主页:http://www.open-open.com/lib/view/home/1446619443045