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
可以为 left
, right
, top
或者 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