¿Cómo puedo desplazarme programáticamente a una posición específica en a ListView
?
Por ejemplo, tengo un String[] {A,B,C,D....}
, y necesito establecer el elemento visible superior del ListView
al índice 21 de mi String[]
.
android
android-listview
Maxime
fuente
fuente
Respuestas:
Para un desplazamiento directo:
Para un desplazamiento suave:
fuente
smoothScrollToPosition
no funciona, alguna sugerencia?listView.post(() -> listView.smoothScrollToPosition());
Para una duración de desplazamiento suave con desplazamiento:
getListView().smoothScrollToPositionFromTop(position,offset,duration);
Nota: desde la API 11.
La respuesta de HandlerExploit fue lo que estaba buscando, pero Mi vista de lista es bastante larga y también con desplazamiento del alfabeto. Luego descubrí que la misma función también puede tomar otros parámetros :)
Editar: (De la sugerencia de AFD)
Para posicionar la selección actual:
fuente
Pon tu código en el controlador de la siguiente manera,
y luego llama a este método como,
¡¡¡SALUD!!!
fuente
He configurado OnGroupExpandListener y anulo onGroupExpand () como:
y use el método setSelectionFromTop () que establece el elemento seleccionado y coloca la selección y píxeles desde el borde superior de ListView. (Si está en modo táctil, el elemento no se seleccionará, pero se colocará de manera adecuada) (documentos de Android)
fuente
El
Listview
desplazamiento se colocará en la parte superior de forma predeterminada, pero desea desplazarse si no está visible, utilice esto:fuente
Si alguien busca una funcionalidad similar como la aplicación Gmail,
El desplazamiento de Vista de lista se colocará en la parte superior de forma predeterminada. Gracias por la pista. amalBit. Solo restalo. Eso es.
fuente
Si alguien está interesado en manejar la lista, vea una fila hacia arriba / abajo con el botón. luego.
fuente
Si desea saltar directamente a la posición deseada en una vista de lista simplemente use
listView.setSelection (int position);
y si quieres saltar suavemente a la posición deseada en listView solo usa
listView.smoothScrollToPosition (int posición);
fuente
Esto es lo que funcionó para mí. Combinación de respuestas por amalBit y Melbourne Lopes
y luego llame a este método como:
fuente
su fácil lista-view.set selección (pos); o puede guardar su posición con preferencia compartida y cuando comienza la actividad obtiene preferencias y establece la selección a ese int
fuente
-Si solo desea que la lista se desplace hacia arriba \ amanecer a una posición específica:
-si desea obtener la posición de un elemento específico en myListView:
-también esto
myListView.getVerticalScrollbarPosition(i);
puede ayudarte.Buena suerte :)
fuente
Necesita dos cosas para definir con precisión la posición de desplazamiento de una vista de lista:
Para obtener la lista actual Ver posición de desplazamiento:
Para establecer la posición de desplazamiento de ListView:
fuente
Encontré esta solución para permitir el desplazamiento hacia arriba y hacia abajo usando dos botones diferentes.
Según lo sugerido por @Nepster, implemento el desplazamiento mediante programación usando getFirstVisiblePosition () y getLastVisiblePosition () para obtener la posición actual.
fuente