Obtenir une position dans onCreateViewHolder
Je suis en transformant ma ListView RecyclerView avec le Soutien de la Bibliothèque v7.
J'ai 2 différentes mises en page à charger dans un RecyclerView
. Dans ListView
j'avais la position de l'élément dans le getView()
méthode et de charger un modèle approprié pour la ligne. Mais dans RecyclerView
la onCreateViewHolder
n'ont pas le paramètre de position.
Est-il un autre moyen pour y parvenir?
PS:La Boîte de réception en application à partir de Google montre les différentes mises en page dans un RecyclerView
(peut-être). Je ne pense pas qu'ils aient utilisé le ListView
en raison de l'amélioration des performances dans 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);
}
source d'informationauteur Sathesh
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, ignorer
getItemViewType
méthode:Alors il suffit d'utiliser le deuxième paramètre de la
onCreateViewHolder
: