学习使用大佬的SwipeMenuRecyclerView总结
导入依赖
Recyclerview
implementation 'com.android.support:recyclerview-v7:26.1.0'
SwipeMenuRecycleView
compile 'com.yanzhenjie:recyclerview-swipe:1.1.4'
注意:适配器和普通适配器使用一样,个人使用封装的RecycleView适配器
主Activity代码如下:
public class SwipeRecycleActivity extends AppCompatActivity {
private List<String> list = new ArrayList<>();
private ListAdapter listAdapter;
private SwipeMenuCreator swipeMenuCreator;
private SwipeMenuItemClickListener swipeMenuItemClickListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_swipe_recycle);
initdata();//初始化数据
setSwipeMenu();//设置菜单
SwipeMenuRecyclerView swipeMenuRecyclerView = findViewById(R.id.rv_swipe);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
swipeMenuRecyclerView.setLayoutManager(linearLayoutManager);
listAdapter = new ListAdapter(R.layout.layout_list_item, list);
swipeMenuRecyclerView.setSwipeMenuCreator(swipeMenuCreator);
swipeMenuRecyclerView.setSwipeMenuItemClickListener(swipeMenuItemClickListener);
swipeMenuRecyclerView.setAdapter(listAdapter);
listAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
}
});
}
private void setSwipeMenu() {
// .setImage(R.mipmap.icon_img)
swipeMenuCreator = new SwipeMenuCreator() {
@Override
public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) {
int width = 200;
int height = ViewGroup.LayoutParams.MATCH_PARENT;
SwipeMenuItem deleteItem = new SwipeMenuItem(SwipeRecycleActivity.this)
.setBackground(R.drawable.ic_launcher_background)
// .setImage(R.mipmap.icon_img)
.setText("删除")
.setWidth(width)
.setHeight(height);
SwipeMenuItem addItem=new SwipeMenuItem(SwipeRecycleActivity.this)
.setBackground(R.color.c10)
.setText("添加")
.setWidth(width)
.setHeight(height);
SwipeMenuItem editItem=new SwipeMenuItem(SwipeRecycleActivity.this)
.setBackground(R.color.colorAccent)
.setText("编辑")
.setWidth(width)
.setHeight(height);
swipeRightMenu.addMenuItem(addItem);
swipeRightMenu.addMenuItem(editItem);
swipeRightMenu.addMenuItem(deleteItem);
}
};
swipeMenuItemClickListener = new SwipeMenuItemClickListener() {
@Override
public void onItemClick(SwipeMenuBridge menuBridge) {
menuBridge.closeMenu();
int direction = menuBridge.getDirection();//左边还是右边菜单
int adapterPosition = menuBridge.getAdapterPosition(); // ecyclerView的Item的position。
int position = menuBridge.getPosition(); // 菜单在左边或右边添加几个菜单的下标
if (direction == SwipeMenuRecyclerView.RIGHT_DIRECTION) {
if (position == 0) {
Toast.makeText(SwipeRecycleActivity.this, "添加新条目", Toast.LENGTH_LONG).show();
list.add("添加-=-=-=-=-=-=-=-=数据");
listAdapter.notifyDataSetChanged();
} else if(position==1){
Toast.makeText(SwipeRecycleActivity.this, "编辑第" + adapterPosition + "个条目", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(SwipeRecycleActivity.this, "删除第" + adapterPosition + "个条目", Toast.LENGTH_LONG).show();
list.remove(adapterPosition);
listAdapter.notifyDataSetChanged();
}
}
}
};
}
private void initdata() {
for (int i = 0; i < 30; i++) {
list.add("添加-=-=-=-=-=-=-=-=数据" + i);
}
}
}
==================================华丽的分割线=======================================
布局代码
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
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"
tools:context="com.wdcloud.selectfiletest.SwipeRecycleActivity">
<com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView
android:id="@+id/rv_swipe"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView>
</android.support.constraint.ConstraintLayout>
版权声明:本文为Little_xiaobai原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。