RecylerView:选择View Holders

时间:2015-10-16 06:27:51

标签: android android-recyclerview android-viewholder

我对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 {
 ..

. 
 }

1 个答案:

答案 0 :(得分:0)

如果您查看Android示例代码(http://developer.android.com/samples/RecyclerView/src/com.example.android.recyclerview/CustomAdapter.html),该示例表明应使用前一种方法。

对于大多数可以想象的情况,一个ViewHolder足以让一个RecyclerView保存所有视图。您可能不应该创建多个ViewHolder,除非您出于某些特定原因需要它。