Cómo implementar Android 4.0 como deslizar para descartar funcionalidad en ListView?
Estoy trabajando en una aplicación en la que desearía implementar la funcionalidad de despliegue automático para eliminar en ListView, similar a lo que vemos en la barra de notificaciones de Android 4.0, en la lista de aplicaciones recientes o en las pestañas del navegador. Quiero ejecutar la aplicación en los dispositivos que ejecutan Android 2.2 o superior. Vea la siguiente imagen. También quiero cambiar la transparencia del elemento que está siendo eliminado – como en ICS.
Navegador Web de Android 4.0 – Deslizando las pestañas abiertas http://img19.imageshack.us/img19/3605/screenshot2012022617290.png
- Fijas fijas en nuevo diseño de material android
- Ficha de Android como pie de página
- Cómo abrir pestaña en Espresso
- ¿Cómo mantener el estado del fragmento sin backstack en la pestaña?
- ¿Cómo agregar divider en el estilo de TabLayout de android? TabLayout es nuevo en la biblioteca de soporte de diseño
Comprobé el origen del navegador web ICS en http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.0.1_r1/com/android/browser/ TabScrollView.java?av=f pero no pudo averiguar qué clase es particularmente responsable de implementar esta funcionalidad.
¿Puede alguien señalarme en la dirección correcta aquí? ¿Podemos hacer esto usando la Biblioteca de Compatibilidad de Android? Por favor hagamelo saber. Muchas gracias.
- Listview no actualizar en fragmento con las pestañas viewpager
- Android 5.0 tablas de diseño de materiales
- Problema con el espacio en blanco de Android TabWidget
- Comunicarse entre diferentes instancias del mismo fragmento
- Indicador de pestaña personalizada (con la flecha hacia abajo como indicador)
- Las pestañas muestran el fragmento en blanco al volver a fragmentar la segunda vez
- VERY Basicbandsherlock tabs con fragmentos: FragmentTransaction es nulo en el método onTabSelected ()
- Tabhost- establece la posición de la divisa en pestañas Android
Sé que esta es una vieja pregunta, pero para cualquiera que todavía esté buscando esto, puedes echar un vistazo a la biblioteca de Roman Nurik aquí: https://github.com/romannurik/Android-SwipeToDismiss
Esto muestra cómo crear el comportamiento necesario para la vista de lista, así como para las vistas normales.
He pensado en implementar tal característica también, pero todavía no lo he hecho. Así que lo único que puedo ofrecer son algunas ideas sobre cómo me acercaría a ese problema. Si finalmente he escrito algún código, lo publicaré aquí.
- La clase principal necesaria es un adaptador personalizado que extiende un
ListAdapter
(ArrayAdapter, SimpleCursorAdapter, etc.). - El adaptador aplica un View.OnTouchListener a todas sus vistas.
- Siempre que ese oyente detecte una
dx
desplazamiento horizontal, llama aconcernedView.offsetLeftAndRight(dx)
(que hará que la vista se pueda arrastrar). Por supuesto, el adaptador tiene que guardar el desplazamiento horizontal actual para la vista. Si el usuario está arrastrando una vista y elimina su dedo de la pantalla, TouchListener detectará esto también e iniciará una animación de retroceso. Usando el desplazamiento actual también podemos calcular un valor alfa, de modo que la vista se desvanece cuando se aproxima a los bordes de la pantalla. - Si una entrada de lista es finalmente descartada por el usuario, se convierte en un poco complicado, y todavía no estoy seguro de cómo implementaría la siguiente acción: El contenido de la lista tiene que actualizarse (o el adaptador tiene que ignorar las entradas despedidas) Y las opiniones que estaban por debajo de la que fue despedida debe voltear hacia arriba para llenar el vacío. Creo que podría funcionar para dejar que el ListView cargue el nuevo contenido, pero que llenaría la brecha instantáneamente. Para evitar eso, entonces empezaría una animación que permite que todas las vistas interesadas floten desde su posición anterior (donde todavía teníamos la brecha) de nuevo a su posición actual (donde se llena la brecha).
Estos son sólo algunos de mis pensamientos sobre el tema que podrían ayudar a algunas personas a empezar a trabajar en el problema. Como dije, probablemente lo implementaré en el futuro y, por supuesto, publicaré el código aquí.
Agradecería cualquier comentario en los comentarios, pero no quiero explicar rigurosamente cada aspecto de mi idea, que me llevaría demasiado tiempo;)
- Injectview (Roboguice) no funciona con múltiples diseños
- Android – Activación del bloqueo de teclas del sistema (también llamada pantalla de bloqueo)