SwipeRevealLayout

介绍:

一个支持滑动显示另一个布局的布局。

运行效果:

使用说明:

Features

  • 灵活,很容易和RecyclerView,ListView或者任何需要视图绑定的view一起使用。

  • 四个drag边缘(左右上下)。

  • 两种drag模式:

  • 普通(第二个视图在主view的下面)。

  • 同级(第二个视图紧贴主view的边缘).

  • 最小api4

Drag 模式

Drag mode normal:

Drag mode same_level:

依赖

dependencies {
    compile 'com.chauthai.swipereveallayout:swipe-reveal-layout:1.0.0'
}

布局文件

<com.chauthai.swipereveallayout.SwipeRevealLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:mode="same_level"
        app:dragEdge="left">
        <!-- Your secondary layout here -->
        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />
        <!-- Your main layout here -->
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
</com.chauthai.swipereveallayout.SwipeRevealLayout>

app:mode 可以为 normal 或者 same_level

app:dragEdge 可以为 leftrighttop 或者 bottom

和 RecyclerView, ListView, GridView...一起使用

在Adapter class中:

public class Adapter extends RecyclerView.Adapter {
  // This object helps you save/restore the open/close state of each view
  private final ViewBinderHelper viewBinderHelper = new ViewBinderHelper();
  @Override
  public void onBindViewHolder(ViewHolder holder, int position) {
    // get your data object first.
    YourDataObject dataObject = mDataSet.get(position); 
    // Save/restore the open/close state.
    // You need to provide a String id which uniquely defines the data object.
    viewBinderHelper.bind(holder.swipeRevealLayout, dataObject.getId()); 
    // do your regular binding stuff here
  }
}

为了在设备的方向改变的时候保存或者恢复打开或者关闭状态,可以

Adapter class:

public class YourAdapter extends RecyclerView.Adapter {
  ...
  public void saveStates(Bundle outState) {
      viewBinderHelper.saveStates(outState);
  }
  public void restoreStates(Bundle inState) {
      viewBinderHelper.restoreStates(inState);
  }  
}

Activity class:

public class YourActivity extends Activity {
  ...
  @Override
  protected void onSaveInstanceState(Bundle outState) {
      super.onSaveInstanceState(outState);
      if (adapter != null) {
          adapter.saveStates(outState);
      }
  }
  @Override
  protected void onRestoreInstanceState(Bundle savedInstanceState) {
      super.onRestoreInstanceState(savedInstanceState);
      if (adapter != null) {
          adapter.restoreStates(savedInstanceState);
      }
  }
}

方法

setSwipeListener(SwipeListener swipeListener): 为布局设置listener,你可以使用完整的SwipeListener 或者直接简化的SimpleSwipeListener。

open(boolean animation), close(boolean animation):打开或者关闭这个布局。如果animation设置为false,将不会调用listener。

setMinFlingVelocity(int velocity): 设置能够触发布局打开和关闭的最小 fling 速度 (dp/秒) 。

setDragEdge(int edge): 改变布局滑动的方向。

setLockDrag(boolean lock): I如果为true,用户将不能drag/swipe布局。

已下载
0