2015-10-16 3 views
0

У меня есть сомнения на ViewHolders в Recycler зрения, что лучший подходRecylerView: Выбор View Держатели

я), используя один ViewHolder со всеми Просмотр предметов diffrent взглядов типа и определить их помощью, если/другое или переключатель случай: как:

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; 

ИЛИ

II) Использование различных п ViewHolders

public class CustomViewHolder1 extends RecyclerView.ViewHolder { 

... 
} 

public class CustomViewHolder2 extends RecyclerView.ViewHolder { 

... 
} 

    ... 

public class CustomViewHoldern extends RecyclerView.ViewHolder { 
.. 

. 
} 

ответ

0

Если вы посмотрите на образец кода Android (http://developer.android.com/samples/RecyclerView/src/com.example.android.recyclerview/CustomAdapter.html), этот пример указывает, что должен использоваться прежний метод.

Для большинства возможных случаев одного ViewHolder было бы достаточно, чтобы один RecyclerView удерживал все виды. Вероятно, вам не следует создавать более одного ViewHolder, если вам действительно не нужно по какой-то определенной причине.

+0

Представленный пример не показывает какой-либо подход для разных типов viewTypes. Мне интересно, почему вы не должны иметь разных держателей для разных видов просмотров. – Naveed

+0

Представленный пример позволяет использовать различные типы viewTypes в методе onCreateViewHolder. Подход к нему задается оригинальным лицом, поставившим вопрос выше. Я не сказал, что у вас не должно быть разных держателей взглядов для разных взглядов, я сказал, что если есть какая-то конкретная причина, вы должны это сделать. Но нет причин для этого, если он не нужен. Если Google считает, что у каждого другого представления всегда должен быть свой собственный держатель, они не включили бы параметр viewType в пример метода onCreateViewHolder. Другими словами, сухая над WET. –

Смежные вопросы