一款开源Recycleview。集成了多种条件筛选(也可自定义添加)、排序、上拉加载下拉刷新等

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();
            List list = 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> data) {
        this.context = context;
        setData(data);
    }

    @Override
    public View getHolderView(ViewGroup parent, int position) {
        View root = LayoutInflater.from(context).inflate(R.layout.item_layout, parent, false);
        return root;
    }

    @Override
    public void onBindViewHolder(BaseRecyclerViewHolder holder, int position) {
        TextView tv = holder.getView(R.id.tv_name);
        Map item = (Map) _data.get(position);
        tv.setText(item.get("id"));
    }
}
List> list = getData();
NomalAdapter adapter = new NomalAdapter(context,list);
view.getRecyclerView().setLayoutManager(new LinearLayoutManager(context));
view.getRecyclerView().setAdapter(adapter);

顶部栏样式设置

//设置顶部栏按钮字体大小
setBarTxtSize

//设置顶部栏文字
setSortTxt
setFilterTxt

//设置顶部栏高度
setBarHeight

//设置顶部栏字体颜色
setBarTxtColor
setBarTxtColorActive

//设置顶部栏综合按钮图标(下拉菜单图标)
setBarImgCom

//设置顶部栏筛选图标按钮
setBarImgFilter

//设置综合下拉菜单数据
setComSpinnerData

//设置下拉菜单选中
setComSpinnerSelectedIndex

//设置、获取排序状态
getSortStatus
setSortStatus

//隐藏、显示顶部栏
hideBar(Boolean isHide)

//隐藏、显示顶部栏中的综合按钮、排序按钮、筛选按钮
hideBar(Boolean isHideComBtn, Boolean isHideFilterBtn)
 

自定义属性说明


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

你可能感兴趣的:(android)