本文共 3195 字,大约阅读时间需要 10 分钟。
SwipeRecyclerView项目地址:
compile 'com.yanzhenjie:recyclerview-swipe:1.0.3'
Or Maven:
com.yanzhenjie recyclerview-swipe 1.0.3 pom
gif有一些失真,且网页加载速度慢,可以[下载demo的apk][3]看效果。
SwipeMenuLayout
开发自己的侧滑菜单。
这里列出关键实现,具体请参考demo,或者加最上面的交流群一起讨论。 更多教程请进入查看。
recyclerView.setLongPressDragEnabled(true);// 开启长按拖拽recyclerView.setItemViewSwipeEnabled(true);// 开启滑动删除。recyclerView.setOnItemMoveListener(onItemMoveListener);// 监听拖拽和侧滑删除,更新UI和数据。
侧滑菜单支持自动打开某个Item的菜单,并可以指定是左边还是右边的:
// 打开第一个Item的左侧菜单。recyclerView.openLeftMenu(0);// 打开第一个Item的右侧菜单。recyclerView.openRightMenu(0);
SwipeMenuRecyclerView swipeMenuRecyclerView = findViewById(R.id.recycler_view);// 设置菜单创建器。swipeMenuRecyclerView.setSwipeMenuCreator(swipeMenuCreator);// 设置菜单Item点击监听。swipeMenuRecyclerView.setSwipeMenuItemClickListener(menuItemClickListener)
/** * 菜单创建器。在Item要创建菜单的时候调用。 */private SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() { @Override public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) { SwipeMenuItem addItem = new SwipeMenuItem(mContext) .setBackgroundDrawable(R.drawable.selector_green)// 点击的背景。 .setImage(R.mipmap.ic_action_add) // 图标。 .setWidth(size) // 宽度。 .setHeight(size); // 高度。 swipeLeftMenu.addMenuItem(addItem); // 添加一个按钮到左侧菜单。 SwipeMenuItem deleteItem = new SwipeMenuItem(mContext) .setBackgroundDrawable(R.drawable.selector_red) .setImage(R.mipmap.ic_action_delete) // 图标。 .setText("删除") // 文字。 .setTextColor(Color.WHITE) // 文字颜色。 .setTextSize(16) // 文字大小。 .setWidth(size) .setHeight(size); swipeRightMenu.addMenuItem(deleteItem);// 添加一个按钮到右侧侧菜单。. // 上面的菜单哪边不要菜单就不要添加。 }};
更多使用方法请参考Demo,或者加最上方的QQ群来交流。
public class MenuAdapter extends SwipeMenuAdapter{ @Override public int getItemCount() { return 0; } @Override public View onCreateContentView(ViewGroup parent, int viewType) { return null; } @Override public ViewHolder onCompatCreateViewHolder(View realContentView, int viewType) { return null; } @Override public void onBindViewHolder(MenuAdapter.DefaultViewHolder holder, int position) { }}
就到这里,更多的细节,请参考Github上的demo和源码,。
版权声明:转载必须注明本文转自严振杰的博客: