¿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.
- Cómo hacer que la vista de lista se desplace hasta que el último elemento esté en la parte superior de la pantalla
- SeekBar dentro de DrawerLayout
- La posición de la vista de lista se cambia al desplazarse en android
- Android ListView scrollTo
- ¿Cómo hacer Pan automático (desplazamiento) con AChartEngine gráfico de línea dinámica junto con el eje X?
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.
- Cómo hacer el nuevo efecto de paralaje de PlayStore
- Cómo hacer que AppBarLayout desaparezca por completo con windowTranslucentStatus establecido en true
- Vista de lista Scroll Not Smooth
- Android RecyclerView desplazamiento suave para ver que está animando su altura
- Control de dos ViewPager juntos
- Android: Haga que la vista en la parte superior de la lista desplaza junto con la vista de lista
- ¿Es posible agregar un TextView desplazable a un ListView?
- Utilizar smoothScrollTo en Fragmento
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