美文网首页
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