[关闭]
@XQF 2017-02-10T22:40:58.000000Z 字数 802 阅读 1107

关于RecyclerView的一些小问题收集

《Android探险》


1.关于ViewHolder的子类

  1. MyHolder<T> extends RecyclerView.ViewHolder{
  2. }

这里的泛型T就是我们定义的item类。可以在里面

  1. setData(T t)
  2. BindData(T t)

还要说明一点的就是关于ViewHolder的构造方法。以前我基本都是这样写的

  1. class MyHolder extends RecyclerView.ViewHolder{
  2. public MyHolder(View itemView){
  3. }
  4. }

实际上这样写也不是很对,这种方式要调用一下父类构造器应该更稳

  1. class MyHolder extends RecyclerView.ViewHolder{
  2. public MyHolder(View itemView){
  3. super(itemView);
  4. }
  5. }

为什么说要调用一下父类构造器更稳

看看下面这种写法

  1. public class MyHolder extends RecyclerView.ViewHolder{
  2. private Button mBtn;
  3. public MyHolder(LayoutInfalter inflater,ViewGroup container){
  4. super(infalter.inflate(layout资源,container,false);
  5. mBtn=(Button)itemView.findViewById(资源Id);
  6. }
  7. }

没错,这个itemView已经在父类中有这个成员变量了,super()传入的只要是个view就行。实际上这两种方式也可以进行互换,只不过是加载布局不同的时机。

而恰恰这个时机也可以是我们应用的一个时机。我们是选择在Adapter中绑定item视图还是在ViewHolder中绑定视图,。,。看情况

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注