Ich habe eine kürzere und meiner Meinung nach bessere Lösung, um dies zu tun: ListView requestChildRectangleOnScreen-Methode ist dafür ausgelegt.
Die obige Antwort stellt sicher, dass das Element angezeigt wird, aber manchmal wird es teilweise angezeigt (dh wenn es am unteren Rand des Bildschirms ist). Der Code stellt sicher, unten, dass das gesamte Element angezeigt wird, und dass die Sicht nur die notwendige Zone bewegen wird:
private void ensureVisible(ListView parent, View view) {
Rect rect = new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom());
parent.requestChildRectangleOnScreen(view, rect, false);
}
Setselection scrollt es zum Anfang der Ansicht. Ich brauche es nur, um so wenig wie möglich zu bewegen – CodeFusionMobile
Diese Antwort ist nicht genau, wie CodeFusionMobile darauf hingewiesen. Also ich würde es nicht wirklich akzeptieren ... :-( – Zordid