Tengo una solución más corta y, en mi opinión, mejor para hacer esto: el método ListView requestChildRectangleOnScreen está diseñado para ello.
La respuesta anterior asegura que el elemento se mostrará, pero a veces se mostrará en parte (es decir, cuando se encuentre en la parte inferior de la pantalla). El código siguiente se asegura de que todo el elemento se mostrará y que la vista se desplazará sólo la zona necesaria:
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 lo desplaza a la parte superior de la vista. Solo necesito que se mueva lo menos posible – CodeFusionMobile
Esta respuesta no es precisa, como señaló CodeFusionMobile. Por lo tanto, no lo aceptaría realmente ... :-( – Zordid