ZwFilterRecycleview是一款开源的Android RecycleView控件。 集成了多种条件筛选(也可自定义添加)、排序、上拉加载下拉刷新等,样式颜色、图片、字体都可自定义
Step1:添加依赖
Gradle
allprojects { repositories { ... maven { url 'https://www.jitpack.io' } } }
dependencies { implementation 'com.github.840631861:ZwFilterRecycleview:v0.1.6' }
Maven
jitpack.io https://www.jitpack.io
com.github.840631861 ZwFilterRecycleview v0.1.6
Step2:添加布局
更过自定义属性参见
Step3:在Activity或Fragment中配置数据源和样式
添加筛选侧拉栏中单选、多选数据及监听事件
//设置侧拉栏数据及监听 view.getFilterManager() //.addCheckData(data)//添加单个侧拉栏中数据(选择按钮) .addCheckDatas(checkDatas)//添加多个侧拉栏中数据(选择按钮) .setOnFilterItemChangeListener(new IListView.OnFilterItemChangeListener() { @Override public void onFilterItemChange(FilterData data) { //点击或改变筛选中的item数值后的回调 } }) .setOnFilterConfirmClickListener(new IListView.OnFilterConfirmClickListener() { @Override public void onFilterConfirmClick(FilterData data) { //点击确认按钮的监听 Toast.makeText(context,"点击了确认",Toast.LENGTH_SHORT).show(); Listlist = data.getCheckDatas(); } }) .setOnFilterResetClickListener(new IListView.OnFilterResetClickListener() { @Override public void onFilterResetClick(FilterData data) { //点击重置按钮的监听 Toast.makeText(context,"点击了重置",Toast.LENGTH_SHORT).show(); List list = data.getCheckDatas(); } }) .setOnPopShowListener(new IListView.OnPopShowListener() { @Override public void onPopShow() { } });
自定义修改侧拉栏中样式,添加时间段条件、搜索框等,还可以添加自定义布局
View custom = LayoutInflater.from(context).inflate(R.layout.layout_custom,null); //设置侧拉栏样式 view.getFilterManager() //.addTimeSection(getSupportFragmentManager(), Type.YEAR_MONTH)//添加时间段(不带样式使用默认) .addTimeSection(getSupportFragmentManager(), Type.YEAR_MONTH,R.color.colorAccent)//添加时间段(带样式) .addSearchTxt()//添加搜索框 .addCustomView(custom)//添加自定义布局 .setOnAddCustemViewCallback(new IListView.OnAddCustemViewCallback() { @Override public void onAddCustemView(View parent, View custom) { //自定义布局回调 } }) //设置seekbar .addSeekBar1("距离",0,200,0) .addSeekBar2("距离2",0,200,0);
更改顶部栏中排序、筛选等按钮的样式,及设置下拉菜单的数据 更多设置参见
//设置顶部栏样式 view.getViewBarManager() //.setBarTxtSize(15) //.setBarImgCom(getResources().getDrawable(R.mipmap.ic_tri_down),getResources().getDrawable(R.mipmap.ic_tri_up)) .setComSpinnerData(spinnerData) .setFilterTxt("筛选") //监听下拉菜单或顶部按钮点击事件 .setOnBarItemSelectedListener(new IListView.onBarItemSelectedListener() { @Override public void onBarItemSelected(ZwFilterCheckDataItem checkDataItem) { Toast.makeText(context,"按钮",Toast.LENGTH_SHORT).show(); } }) .setComSpinnerSelectedIndex(0) //增加标签 .setMarkData(setMarkData()) //增加顶部按钮 .setBarBtns(setBtnData());
注意:修改完样式后需要调用
view.updateView();
设置recycleview列表数据
1、view.getRecyclerView()获取recycleview实例,然后自定义数据
2、其中提供了封装的adapter(BaseRecyclerAdapter)供使用,如
public class NomalAdapter extends BaseRecyclerAdapter { private Context context; public NomalAdapter(Context context,List
List
//设置顶部栏按钮字体大小 setBarTxtSize //设置顶部栏文字 setSortTxt setFilterTxt //设置顶部栏高度 setBarHeight //设置顶部栏字体颜色 setBarTxtColor setBarTxtColorActive //设置顶部栏综合按钮图标(下拉菜单图标) setBarImgCom //设置顶部栏筛选图标按钮 setBarImgFilter //设置综合下拉菜单数据 setComSpinnerData //设置下拉菜单选中 setComSpinnerSelectedIndex //设置、获取排序状态 getSortStatus setSortStatus //隐藏、显示顶部栏 hideBar(Boolean isHide) //隐藏、显示顶部栏中的综合按钮、排序按钮、筛选按钮 hideBar(Boolean isHideComBtn, Boolean isHideFilterBtn)