Meine ListView hat zwei Arten von Ansichten. Wie man verwaltet?
Meine Ereignisverwaltungs-App verfügt über zwei Arten von Ansichten in der Listenansicht: eine kleine einfache Textansicht für nicht so wichtige Ereignisse und eine komplexe Ansicht, die mit einem erstellt wurdeFrameLayout
.
in demonCreateView()
Vom Adapter gebe ich diese Ansichten abhängig von der Art des Ereignisses zurück.
if(convertView == null){
if(important)
// inflate the complex view
else
// inflate the simpler view
}
Das ist alles gut wennconvertView
ist Null. Aufgrund des View-Recyclings in Android kann es vorkommen, dass dasconvertView
zurückgegeben wird mir aus der einfacheren sicht recycelt und ich muss jetzt die größere sicht anzeigen. Eine blöde Lösung ist, ständig neue Ansichten aufzupumpen. Dies kann jedoch die Leistung beeinträchtigen.
Ein anderer Weg ist, unsichtbar zu seinTextView
s in beiden (visibility=gone
) mit vordefinierten Werten und je nachdem, welcher Wert in ihnen ist, kann ich die Ansichten aufblasen. Für mich scheint dies eher ein Hack als eine echte Lösung zu sein.
Was ist der richtige Weg, um mit dieser Situation umzugehen?