前段时间在git上get到SwipeDelMenuLayout侧滑删除,不依赖ListView或者RecyclerView,只要在item中即可,无耦合性。
效果图:
用法:
在build.gradle中配置:
dependencies {
compile 'com.github.mcxtzhang:SwipeDelMenuLayout:V1.3.0'
}
布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="1dp"
android:background="@color/white"
android:orientation="horizontal">
<com.mcxtzhang.swipemenulib.SwipeMenuLayout
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:scrollbars="none"
app:ios="false"
app:leftSwipe="true"
app:swipeEnable="true">
<!-- Item内容 -->
<RelativeLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="60dp">
<com.wholesale.yzx.yxzwholesale.view.widght.CircleImageView
android:id="@+id/iv_chat_photo"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp" />
<TextView
android:id="@+id/tv_chat_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/iv_chat_photo"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/text_color_title"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_chat_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/iv_chat_photo"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/tv_color_gray"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_chat_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="10dp"
android:textColor="@color/tv_color_gray"
android:textSize="14sp" />
</RelativeLayout>
<!-- 以下都是侧滑菜单的内容依序排列 -->
<Button
android:id="@+id/btnTop"
android:layout_width="60dp"
android:layout_height="match_parent"
android:background="#d9dee4"
android:text="置顶"
android:textColor="@android:color/white"/>
<Button
android:id="@+id/btnUnRead"
android:layout_width="120dp"
android:layout_height="match_parent"
android:background="#ecd50a"
android:clickable="true"
android:text="标记未读"
android:textColor="@android:color/white"/>
<Button
android:id="@+id/btnDelete"
android:layout_width="60dp"
android:layout_height="match_parent"
android:background="@color/red_ff4a57"
android:text="删除"
android:textColor="@android:color/white"/>
</com.mcxtzhang.swipemenulib.SwipeMenuLayout>
</LinearLayout>
功能详解:
isIos | 切换到IOS阻塞交互模式,Android功能在交互模式下的非阻塞功能可以正常工作 | |
isSwipeEnable | 是否支持侧滑的近距离功能 | |
isLeftSwipe | 是否支持双向滑动 |
1 侧滑拉出菜单。
2 点击除了这个item的其他位置,菜单关闭。
3 侧滑过程中,不许父控件上下滑动。
4 多指同时滑动,屏蔽后触摸的几根手指。
5 不会同时展开两个侧滑菜单。
6 侧滑菜单时 拦截了长按事件。
7 侧滑时,拦截了点击事件。
8 通过开关 isLeftSwipe支持左滑右滑。