Ich transformiere meine ListView zu RecyclerView mit Support-Bibliothek v7.Position in onCreateViewHolder erhalten
Ich habe 2 verschiedene Layouts in einem RecyclerView
laden. In ListView
bekam ich die Position des Artikels in der getView()
Methode und in der Lage, ein entsprechendes Layout für diese Zeile zu laden. Aber in RecyclerView
hat die onCreateViewHolder
nicht den Positionsparameter.
Gibt es einen anderen Weg, dies zu erreichen?
PS: Die Inbox App von Google zeigt verschiedene Layouts in einer RecyclerView
(könnte sein). Ich glaube nicht, sie könnten wegen der Leistungsverbesserungen, die ListView
verwendet haben in 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);
}
Ihr zweiter Parameter ist 'viewType', ich denke es ist was Sie wollen. – rom4ek
Das habe ich auch zuerst gedacht. Aber es ist nicht. Es ist nur die Art der Ansicht und nicht die Position. – Sathesh
eine andere Denkweise: switch (viewType) statt vo.getType() –