EasyRecyclerView的使用

  对于RecyclerView的使用在此不详细赘述了,毕竟张鸿洋对recyclerview的介绍可谓是大多数人的入门文章了,对于出现了时间很长,并且十分好使用的控件没有出现让他更好用的库那简直是不可能的事情,在这里给大家介绍下EasyRecyclerAdapter的使用,这个库可以让你的recyclerview变得更加的强大。

首先就是为项目引入EasyRecyclerAdapter库,在android studio下一行代码搞定

    compile 'com.github.cmc00022:easyrecycleradapters:1.1.1'

同步之后就可以在项目中使用了。废话不多说,先上代码

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private List<Object> list = new ArrayList<>();
    private EasyRecyclerAdapter recyclerViewAdapter = new EasyRecyclerAdapter(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView = (RecyclerView) findViewById(R.id.rv_recyclerview);
        recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
        initData();
        loadingData();
        recyclerViewAdapter.addAll(list);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setAdapter(recyclerViewAdapter);
    }

    private void loadingData() {
        recyclerViewAdapter.bind(Title.class, TitleViewHolder.class);
        recyclerViewAdapter.bind(ItemB.class, ItemBViewHolder.class);
    }

    private void initData() {
        list.add(new Title("我就是itemA"));
        List<String> lisData = new ArrayList<>();
        for (int i = 0; i < 25; i++) {
            lisData.add("我是ItemB第" + i + "个");
        }
        list.add(new ItemB(lisData));
    }
}
布局文件中只有一个recyclerview,除此之外是什么都不存在的。

list是我要显示的数据。

看起来就是正常的使用,这个库真正强大的地方时在loadingData这个方法中。

	recyclerViewAdapter.bind(Title.class, TitleViewHolder.class);
        recyclerViewAdapter.bind(ItemB.class, ItemBViewHolder.class);

可以认为这是为特殊的JavaBean绑定了viewholder的样式,每个对应的Bean都有对应的样式。

public class TitleViewHolder extends EasyViewHolder<Title> {
    private TextView tvTitle;
    private Context context;

    public TitleViewHolder(Context context, ViewGroup parent) {
        super(context, parent, R.layout.title_layout);
        this.context = context;
        tvTitle = (TextView) itemView.findViewById(R.id.tv_title);
    }

    @Override
    public void bindTo(Title value) {
        if (value != null) {
            itemView.setTag(value);
            tvTitle.setText(value.getTitle());
        }
    }
}

比如上面这个就是我Title这个bean对应的viewholder,可以看到的是我在这里面做的只有在继承的时候指定我绑定好的bean,剩下的就是需要显示数据的显示就好了。

由此,我们想要任何样式都可以用recyclerview去显示,这么做的好处就是,所有的数据显示位置都是可变的,只要在解析数据的时候做好处理就可以显示所有我们需要显示的数据了。

Demo链接是

https://github.com/DespairK/EasyRecycler


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值