2010-07-22 10 views
5

Ich habe meine ListView auf dem Bildschirm. Es ist nach oben gescrollt. Ich sehe 6 Reihen. Und wenn ich getFirstVisiblePosition() und getLastVisiblePosition() protokolliere, heißt es 0 und 6.Do ListView's getFirstVisiblePosition und getLastVisiblePosition liegen?

Gibt getLastVisiblePosition() tatsächlich die erste nicht sichtbare Position zurück? Mit anderen Worten, sollte für meine Prüfung, ob eine bestimmte Zeile Bildschirm, nicht

first <= row && row <= last 

sondern

first <= row && row < last 

?

+0

hi Carl seltsames Problem, ich habe das gleiche, manchmal bekomme ich den richtigen Index, manchmal fail = – Jorgesys

Antwort

1

Nun, wahrscheinlich gibt es den Teil der letzten sichtbaren Ansicht Nummer 6 in Ihrem Fall, der tatsächlich als sichtbar erkannt wird (vielleicht erscheint nur ein winziger Teil am unteren Bildschirmrand). Aber auf jeden Fall, wenn es zeigt, dass die Zählung 7 ist, warum gehst du nicht mit? Ich meine, was auch immer Sie mit dieser Zeile tun, wird nicht wirklich gesehen, plus die Ansicht ist bereits im Adapter gebunden und die getView-Methode im Adapter wird nicht erneut aufgerufen.

Eine weitere Sache mit Ihrem zweiten Code ist, dass zum Beispiel, wenn Sie nur eine Ansicht haben, dann die erste 0 wird, Zeile wird 0 und letzte wird 0 sein und Ihre Bedingungen werden nicht erfüllt sein. Weiß nicht, ob dir das irgendwie hilft, aber immer noch ...

Verwandte Themen