¿Cómo desplazar ListView a la parte inferior?

Aunque esto sería una tarea simple, pero aparentemente no hay manera de desplazar listview a la parte inferior. Todas las soluciones que encontré están usando variaciones del setSelection(lastItem) que sólo establece la selección en el último elemento, pero no se desplaza al fondo de la misma.

En mi caso tengo un listview vacío (con una larga vista vacía conjunto de cabeceras) y quiero desplazarse a la parte inferior de la misma.

Entonces, ¿hay una manera de hacerlo?

Editar:

Así que para los interesados ​​la solución de trabajo es:

 getListView().setSelectionFromTop(0, -mHeader.getHeight()); 

y

 getListView().scrollTo(mOffset) 

Esto también funciona, con desplazamiento a la derecha (calculado en función de la posición de desplazamiento actual), pero podría darle algunos resultados inesperados.

Intente usar list.scrollTo(0, list.getHeight());

Si desea que la vista de lista se despliegue siempre en la parte inferior incluso cuando está actualizando la vista de lista de forma dinámica, puede agregar estos atributos en la vista de lista en sí.

 android:stackFromBottom="true" android:transcriptMode="alwaysScroll" 

Utilice los siguientes

  lv.setSelection(adapter.getCount() - 1); 

Si desea tener una animación de desplazamiento mediante programación, puede desplazarse fácilmente hasta la parte inferior de la lista utilizando:

 listView.smoothScrollToPosition(adapter.getCount()); 

Desplazamiento a la parte superior más de la lista se puede lograr mediante:

 listView.smoothScrollToPosition(0); 

Pruebe este .. va a resolver su problema, lo intenté y funciona muy bien.

  listView.post(new Runnable(){ public void run() { listView.setSelection(listView.getCount() - 1); }}); 
 private void scrollMyListViewToBottom() { myListView.post(new Runnable() { @Override public void run() { // Select the last row so it will scroll into view... myListView.setSelection(myListAdapter.getCount() - 1); } }); } 

Funciona para mi

Utilice lo siguiente y pruebe.

Listview.setSelection (adaptador.getCount () – 1);

Es posible que desee probar myListView.smoothScrollToPosition(myListView.getCount() - 1) . De esta manera, no se ve obligado a seleccionar la última fila. Además, obtiene un desplazamiento suave y hermoso! (:

Tuve el mismo problema, esto funciona mejor para mí

 listView.setSelection(listView.getAdapter().getCount()-1); 

Si no hay ningún adaptador establecido en su ListView, entonces no tiene hijos en absoluto, vista vacía no es un hijo de su ListView

  • Título de Autoscrollable en Android Actionbar (Marquee)
  • Moondroid Coverflow Desplazarse sólo entre el primer y el último objeto
  • Android - NumberPicker desplazamiento / fling más rápido
  • Efecto de desplazamiento de Android (aplicación Google I / O)
  • Android - HorizontalScrollView - obtener la vista en foco (o índice de la misma)
  • Desplazarse por una vista y actualizar el contenido
  • El girador se desplaza hacia arriba cuando está encendidoPulse o desplaza lentamente
  • ¿Cómo evito completamente que TextView se desplace?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.