listview-Graf vs-adapter zählen in android
Warum listview.getChildCount()
und adapter.getCount()
unterschiedliche Werte zurückgeben? Ich habe ein onScroll-Methode und von innen, wenn ich die Methoden aufrufen, die oben genannten, die jeweils unterschiedliche Werte zurückgeben. Weiß jemand, warum?
- Siehe this
Du musst angemeldet sein, um einen Kommentar abzugeben.
ListView.getChildCount()
gibt die Anzahl derViews
auf dem Bildschirm.Adapter
sgetCount()
gibt die gesamte Anzahl der Objekte in der Liste.getChildCount()
getCount()
Haben Sie vielleicht 50
String
s in sagen eineArrayAdapter
aber nur 10 werden auf dem Bildschirm gezeichnet werden auf den aktuellen moment so IhreListView
zählen wird 10 sein, aber IhreAdapter
zählen 50.listview.getChildAt(index)
mussindex
werden[0,listView.getChildCount() )
oder könnte der index etwas zwischen[0,adapter.getCount() )
?[0,listView.getChildCount() )
. Sonst könnte EuchIndexOutOfBoundsException
weil, wie mein Beispiel zeigt, haben Sie möglicherweise weitere Elemente aus IhrerList
als aktuell in IhremListView
try/catch
zu fangen, dieIOB Exception
adapter.getCount()
gibt insgesamt Objekte zählen, die in ihm enthalten.listView.getChildCount()
Gegenzug die Anzahl der Ansichten gezeigt, die in dieser listview.Adapter nutzt caching-Mechanismus, und eine Menge von Ansichten wiederverwendet werden, das ist, warum es ist die Nummer unterscheidet sich von der Abbildung in
adapter.getCount()