我对Recycler View中的ViewHolders有疑问,这是一种更好的方法
i)将单个ViewHolder与不同类型视图的所有View项一起使用,并使用if / else或switch case识别它们: 喜欢:
public class CustomViewHolder extends RecyclerView.ViewHolder {
LinearLayout ll1;
LinearLayout ll2;
...
...
LinearLayout lln;
TextView tv1;
TextView tv2;
...
...
TextView tvn;
switch(viewType)
{
case 1: ...
break;
case 2: ...
break;
case 3:...
break;
case n:...
break;
}
}
where n > =100;
OR
ii)使用n个不同的ViewHolders
public class CustomViewHolder1 extends RecyclerView.ViewHolder {
...
}
public class CustomViewHolder2 extends RecyclerView.ViewHolder {
...
}
...
public class CustomViewHoldern extends RecyclerView.ViewHolder {
..
.
}
答案 0 :(得分:0)
如果您查看Android示例代码(http://developer.android.com/samples/RecyclerView/src/com.example.android.recyclerview/CustomAdapter.html),该示例表明应使用前一种方法。
对于大多数可以想象的情况,一个ViewHolder足以让一个RecyclerView保存所有视图。您可能不应该创建多个ViewHolder,除非您出于某些特定原因需要它。