1.在项目build下添加仓库
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
2.module 下build添加依赖
implementation 'com.github.mcxtzhang:SwipeDelMenuLayout:V1.3.0'
3.列表item布局
<com.mcxtzhang.swipemenulib.SwipeMenuLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
app:ios="true"
app:leftSwipe="true"
app:swipeEnable="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/cOmmtv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="8"
android:padding="@dimen/dp_5"
android:textSize="@dimen/sp_20" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_marginBottom="@dimen/dp_2"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_1"
android:background="#EFEFEF" />
</LinearLayout>
//隐藏到屏幕外的删除按钮
<Button
android:id="@+id/tv_usb_delete"
android:layout_width="@dimen/dp_60"
android:layout_height="match_parent"
android:background="@drawable/bg_cancel"
android:padding="@dimen/dp_5"
android:text="删除"
android:textColor="@color/white"
android:textSize="@dimen/sp_20" />
</com.mcxtzhang.swipemenulib.SwipeMenuLayout>
4.适配器(本例展示的是listview,其他列表可以自行扩展)
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder=null;
View closeView=null;
if (convertView==null){
viewHolder=new ViewHolder();
convertView=View.inflate(context, R.layout.item,null);
viewHolder.text=convertView.findViewById(R.id.text_text);
viewHolder.dele=convertView.findViewById(R.id.dele);
convertView.setTag(viewHolder);
}else {
viewHolder = (ViewHolder) convertView.getTag();
}
if (closeView == null){
closeView = convertView;
}
final View finalCloseView = closeView;// listView的itemView
viewHolder.text.setText(strings.get(position));
viewHolder.dele.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((SwipeMenuLayout)(finalCloseView)).quickClose();// 关闭侧滑菜单
Toast.makeText(context, "删除"+position, Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
这个仓库当时写demo的时候发现listview的item点击事件不好使了,以为是item里有button按钮导致的,结果不是,由于事件仓促,item的点击事件就用回调写了一下,解决后在再补充。