Android 利用CoordinatorLayout vs Behavior机制自定义滑动删除布局:
0.先给个图片样式。
1.滑动删除的实现有很多种,本文介绍自己初步实现的一个拖拽滑动的自定义布局。供参考。
2.原理:SlidingView继承CoordinatorLayout重写dispatchTouchEvent()方法在合适的时候对子view事件进行拦截。
3.SlidingView 包含2个子View ,2个子View分别分配自定义id。
4.实现自定义Behavior 实现SlidingView 内部隐藏的View监听滑动的View,以完成自身的变化。
5.这样在触摸时就会根据条件进行是否滑动的判断,一旦产生滑动DragV 就可以与MoveV联动。
6.首先先自定义2个ID 再后面需要分别指定给 MoveV 和 DragV 。后面见到不要忘记。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="id_slid_move_view" type="id"/>
<item name="id_slid_drag_view" type="id"/>
</resources>
7.定义下Item的布局。
<?xml version="1.0" encoding="utf-8"?>
<com.yushilei.slidingview.widget.SlidingView 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:orientation="vertical">
<!--此处注意 clickable="true" 需要MoveV能够接收到click事件 因为里面子View太少-->
<LinearLayout
android:id="@id/id_slid_move_view"