Я преобразовываю свой ListView в RecyclerView с помощью библиотеки поддержки v7.Получение позиции в onCreateViewHolder
У меня есть 2 разных макета для загрузки в RecyclerView
. В ListView
я получал позицию элемента в методе getView()
и смог загрузить соответствующий макет для этой строки. Но в RecyclerView
onCreateViewHolder
не имеет параметра положения.
Есть ли другой способ достичь этого?
PS: Приложение Inbox от Google показывает различные макеты в RecyclerView
(может быть). Я не думаю, что они, возможно, использовали ListView
из-за повышения производительности в RecyclerView
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View v=null;
MyVO vo = voList.get(???POSITION???);
switch(vo.getType()){
case TYPE_1:
v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.layout1, viewGroup, false);
break;
case TYPE_2:
v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.layout2, viewGroup, false);
break;
}
return new ViewHolder(v);
}
Ваш второй параметр - 'viewType', я думаю, что это то, что вы хотите. – rom4ek
Это то, что я и подумал сначала. Но его нет. Его единственный вид зрения, а не позиция. – Sathesh
другой способ думать: switch (viewType) вместо vo.getType() –