Android开发android开发技巧Android开发知识分享

【开源项目】EditAdapter - 在RecyclerVie

2020-04-16  本文已影响0人  PlainDev
Cover

EditAdapter

适用于RecyclerView的适配器🚥,快速集成列表编辑模式🧾

👉项目地址

演示

image

添加EditAdapter到你的项目

  1. 在项目的 build.gradle 中添加:
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
  1. 添加依赖

查看最新版本号

dependencies {
    // 新版基于此库,必须引入
    implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.50'
    //TAG替换最新版本号
    implementation 'com.github.plain-dev:EditAdapter:TAG'
}

如何使用

  1. 在你的数据实体类中继承SelectedImpl
public class MyDataBean extends SelectedImpl {

    private String title;
    private String content;

    public MyDataBean(String title, String content) {
        this.title = title;
        this.content = content;
    }

    ......
    
}
  1. 创建一个适配器,继承自BaseQuickEditModeAdapter<T extends ISelected> 创建一个适配器,继承自EditAdapter<T extends ISelected>
public class TestEditAdapter extends BaseQuickEditModeAdapter<TestBean, BaseViewHolder> {
    
    ......
      
}
  1. 在构造方法中设置一些数据和属性
public class TestEditAdapter extends BaseQuickEditModeAdapter<TestBean, BaseViewHolder> {

    // 指定布局和数据
    public TestEditAdapter(@Nullable List<TestBean> data) {
        super(R.layout.item_test_edit, data);
    }

    // 指定CheckBox
    @Override
    public CheckBox getCheckBox(BaseViewHolder helper) {
        return helper.getView(R.id.checkBox);
    }

    // 指定HideView隐藏的区域,一般为CheckBox
    @Override
    public View getHideView(BaseViewHolder helper) {
        return helper.getView(R.id.checkBox);
    }
}
  1. 数据绑定(和BaseQuickAdapter的使用方法一致)
public class TestEditAdapter extends BaseQuickEditModeAdapter<TestBean, BaseViewHolder> {

    @Override
    protected void convertView(BaseViewHolder helper, TestBean item) {
        helper.setText(R.id.tvTitle, item.getTitle());
    }

}
  1. ActivityFragment中更新UI
  1. 注册事件监听器
myEditAdapter.setEditSelectedListener(new IEditSelectedListener() {
    //回调当前选中项数量
    @Override
    public void onSelectedItemCount(int count) {
        tvCheckItemCount.setText(String.format("共选中%s项", count));
    }
        
    //回调长按进入编辑模式
    @Override
    public void onLongClickEnterEditMode() {
        myEditAdapter.changeMode(BaseQuickEditModeAdapter.EDIT_MODE);
    }
});

7、如果使用下拉刷新控件,记得在进入编辑模式后,关闭下拉刷新,以SmartRefreshLayout为例

进入编辑模式后

smartRefreshLayout.setEnableRefresh(false);

退出编辑模式后

smartRefreshLayout.setEnableRefresh(true);

其它

有问题欢迎提交issues

状态图标来源iconfont,侵删

感谢BaseRecyclerViewAdapterHelper,本项目继承自该库,并遵循LICENSE


LICENSE

上一篇下一篇

猜你喜欢

热点阅读