美文网首页
Android recycleview实现侧滑删除

Android recycleview实现侧滑删除

作者: hao_developer | 来源:发表于2020-04-21 14:43 被阅读0次
image.png

布局

<com.yanzhenjie.recyclerview.SwipeRecyclerView
    .../>

Item点击监听

recyclerView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(View view, int position) {
        // TODO...
    }
});

侧滑菜单

// 设置监听器。
swipeRecyclerView.setSwipeMenuCreator(mSwipeMenuCreator);

// 创建菜单:
SwipeMenuCreator mSwipeMenuCreator = new SwipeMenuCreator() {
    @Override
    public void onCreateMenu(SwipeMenu leftMenu, SwipeMenu rightMenu, int position) {
        SwipeMenuItem deleteItem = new SwipeMenuItem(mContext)
            ...; // 各种文字和图标属性设置。
        leftMenu.addMenuItem(deleteItem); // 在Item左侧添加一个菜单。

        SwipeMenuItem deleteItem = new SwipeMenuItem(mContext)
            ...; // 各种文字和图标属性设置。
        leftMenu.addMenuItem(deleteItem); // 在Item右侧添加一个菜单。
        
        // 注意:哪边不想要菜单,那么不要添加即可。
    }
};

// 菜单点击监听。
swipeRecyclerView.setOnItemMenuClickListener(mItemMenuClickListener);

OnItemMenuClickListener mItemMenuClickListener = new OnItemMenuClickListener() {
    @Override
    public void onItemClick(SwipeMenuBridge menuBridge, int position) {
        // 任何操作必须先关闭菜单,否则可能出现Item菜单打开状态错乱。
        menuBridge.closeMenu();
        
        // 左侧还是右侧菜单:
        int direction = menuBridge.getDirection();
        // 菜单在Item中的Position:
        int menuPosition = menuBridge.getPosition();
    }
};

注意:菜单需要设置高度,关于菜单高度:
1:MATCH_PARENT,自动适应Item高度,保持和Item一样高,比较推荐;
2:指定具体的高,比如80;
3:WRAP_CONTENT,自身高度,极不推荐;

侧滑删除和拖拽

recyclerView.setLongPressDragEnabled(true); // 拖拽排序,默认关闭。
recyclerView.setItemViewSwipeEnabled(true); // 侧滑删除,默认关闭。

具体的操作请移步到以下链接:
https://github.com/yanzhenjie/SwipeRecyclerView

相关文章

网友评论

      本文标题:Android recycleview实现侧滑删除

      本文链接:https://www.haomeiwen.com/subject/ubvuihtx.html