ExpandableRecycleview之简单实现

本文介绍了如何简单实现ExpandableRecycleviewAdapter,避免复杂的Activity代码,只需一句即可完成设置。提供了BaseRecycleAdapter的写法,并分享了项目源码链接。
摘要由CSDN通过智能技术生成

ExpandableRecycleview准确的说应该是ExpandableRecycleviewAdapter,该功能并没有自定义Recycleview,只是重组了数据,然后根据自己写得数据类型写就可以,同时不需要使用的时候将原本的数据改变,使用方便。

先上效果图,有图有真相

为啥要写这个呢,一个是公司业务需要,一个是去github看了看星最的多,看了一眼就不想看了,acitivity中写的东西他多了,封装……

俺这个在Activity中运用起来就简单多了

Activity的写法:

public class ExpandableActivity extends BaseRecycleViewActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_expandable);
    }

    @Override
    protected void initView() {
        initTitle();
        title_name.setText("收缩框");
    }

    private ExpandableRecycleAdapter adapter;
    private List<GroupBean> dataAdapter;

    protected BaseHeaderView pl_header;


    @Override
    protected void initRecycleView() {
        dataAdapter = new LinkedList<>();
        //分组创建数据
        for (int size = 0; size < 3; size++) {
            GroupBean groupBean = new GroupBean();
            List<ItemBean> itemBeanList = new ArrayList<>();
            groupBean.setGroup(size);

            for (int j = 0; j < 10; j++) {
                ItemBean itemBean = new ItemBean();
                itemBean.setItem(j);
                itemBeanList.add(itemBean);
            }
            groupBean.setItemBeanList(itemBeanList);
            dataAdapter.add(groupBean);
        }

        //recycleview的基本写法
        rlv_all = (RecyclerView) findViewById(R.id.rlv_all);
        adapter = new ExpandableRecycleAdapter(thisActivity, dataAdapter);

        //这里是关键,根据你的组别和每组个数绑定正真的item
        for (int i = 0; i < dataAdapter.size(); i++) {
            adapter.addGroupAndItem(dataAdapter.get(i).getItemBeanList().size());
        }
        setRecycle(adapter, null, new RecycleDividerItemLinear(thisActivity,
                LinearLayoutManager.VERTICAL,
                getResources().getColor(R.color.color_eeeeee))
        );

        adapter.setOnExpandableClickListener(new OnExpandableClickListener() {
            @Override
            public void onExpandableClick(View clickView, BaseExpandableBean selecBean) {

                //这个bean里面含有是group还是group里面的item;
            }
        });
        pl_header = (BaseHeaderView) findViewById(R.id.pl_header);


        pl_header.setOnRefreshListener(new BaseHeaderView.OnRefreshListener() {
            @Override
            public void onRefresh(BaseHeaderView baseHeaderView) {
                pl_header.postDelayed(new Runnable() {
                    @Overr
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值