项目需求是这样的:使用RecyclerView实现一个列表,列表中每个Item可以左滑出现菜单,类似QQ。
实现过程首先需要自定义一个组件,即每个Item的根布局组件。这个组件是继承自FrameLayout,所以组件的特性和FrameLayout差不多,就是子视图相当于放在栈中,最新放置的视图会遮挡旧视图。
这个控件实现完毕后,然后编写list_item布局文件,以这个控件为根布局,第一个菜单视图使用LinearLayout,第二个主视图使用了Android后来推出的ConstraintLayout,布局文件内容如下
<?xml version="1.0" encoding="utf-8"?>
<cn.anonymous.widget.SwipeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/member_item_height"
android:id="@+id/swipe_layout">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent">
<TextView
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/iml_back_delete"
android:textSize="@dimen/text_size_16"
android:textColor="@color/colorWhite"
android:background="@color/colorRed"
android:gravity="center"
android:paddingLeft="@dimen/text_delete_padding"
android:paddingStart="@dimen/text_delete_padding"
android:paddingEnd="@dimen/text_delete_padding"
android:paddingRight="@dimen/text_delete_padding"/>
</LinearLayout>
<android.support.constraint.ConstraintLayout
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="match_parent"
android:minWidth="0dp"
android:background="@color/colorGreen"
android:id="@+id/front_layout">
<cn.anonymous.circleimageview.CircleImageView
android