android侧滑删除第三方,Android 侧滑删除(仿QQ)之SwipeDelMenuLayout

本文介绍了Android侧滑删除第三方库的使用方法。首先在项目根build.gradle文件中增加JitPack仓库依赖,接着添加库依赖。还给出了activity_main.xml、MainActivity、适配器MyAdapter以及layout_item.xml的代码示例,展示了如何实现侧滑删除功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.效果图

5ae4ab8026e1

图片.png

2.使用

Step 1. 在项目根build.gradle文件中增加JitPack仓库依赖。

allprojects {

repositories {

maven { url "https://jitpack.io" }

}

}

2.Step 2. Add the dependency

dependencies {

implementation 'com.github.mcxtzhang:SwipeDelMenuLayout:V1.3.0'

}

3.activity_main.xml中

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".MainActivity">

android:id="@+id/lv"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

3.MainActivity中

package com.demo.drawer_delete;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

private ListView mLv;

private ArrayList mList;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

}

private void initView() {

mLv = (ListView) findViewById(R.id.lv);

mList = new ArrayList<>();

for (int i = 0; i < 20; i++) {

mList.add("我是安琪拉"+i);

}

MyAdapter adapter = new MyAdapter(this, mList);

mLv.setAdapter(adapter);

}

}

4.适配器MyAdapter

package com.demo.drawer_delete;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.TextView;

import com.mcxtzhang.swipemenulib.SwipeMenuLayout;

import java.util.ArrayList;

/**

* Created by $sl on 2019/5/4 13:37.

*/

public class MyAdapter extends BaseAdapter {

private Context mContext;

private ArrayList mList;

public MyAdapter(Context context, ArrayList list) {

mContext = context;

mList = list;

}

@Override

public int getCount() {

return mList.size();

}

@Override

public Object getItem(int position) {

return mList.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(final int position, View convertView, ViewGroup parent) {

ViewHolder viewHolder = null;

if (convertView == null) {

viewHolder = new ViewHolder();

convertView = LayoutInflater.from(mContext).inflate(R.layout.layout_item, null);

viewHolder.mSwipeMenuLayout = (SwipeMenuLayout) convertView.findViewById(R.id.swipeMenuLayout);

viewHolder.mTvContent = (TextView) convertView.findViewById(R.id.tvContent);

viewHolder.mBtnDelete = (Button) convertView.findViewById(R.id.btnDelete);

convertView.setTag(viewHolder);

} else {

viewHolder = (ViewHolder) convertView.getTag();

}

viewHolder.mTvContent.setText(mList.get(position) + "");

final ViewHolder lastViewHolder = viewHolder;

//对删除按钮监听

viewHolder.mBtnDelete.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mList.remove(position);

//刷新适配器

notifyDataSetChanged();

//关闭左滑菜单

lastViewHolder.mSwipeMenuLayout.quickClose();

}

});

return convertView;

}

class ViewHolder {

SwipeMenuLayout mSwipeMenuLayout;

TextView mTvContent;

Button mBtnDelete;

}

}

5.layout_item.xml

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/swipeMenuLayout"

android:layout_width="match_parent"

android:layout_height="50dp">

android:id="@+id/tvContent"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="?android:attr/selectableItemBackground"

android:gravity="center"

android:text="项目中我是任意复杂的原ContentItem布局" />

android:id="@+id/btnDelete"

android:layout_width="100dp"

android:layout_height="match_parent"

android:background="#FF0000"

android:text="删除"

android:textColor="@android:color/white" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值