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

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.

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í.

  1. La clase principal necesaria es un adaptador personalizado que extiende un ListAdapter (ArrayAdapter, SimpleCursorAdapter, etc.).
  2. El adaptador aplica un View.OnTouchListener a todas sus vistas.
  3. Siempre que ese oyente detecte una dx desplazamiento horizontal, llama a concernedView.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.
  4. 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;)

  • Cómo actualizar el contenido de la ficha de fragmento en el botón de clic
  • Android: Listview se duplica cuando inicie una nueva actividad y presiona atrás para volver a ella
  • Androide; Fragmentos se superponen al cambiar las pestañas
  • Acceso mediante programación a una vista que se define en XML de un fragmento en Android
  • RecyclerView onBindViewHolder sólo se llama una vez dentro del diseño de la pestaña
  • Actualizar / Recargar / Re instanciar un fragmento en un sistema de pestañas android
  • Android ViewPager obtiene la vista actual
  • Android: conflicto de ID cuando se crean 3 pestañas o más
  • ¿Cómo mostrar el contador de notificaciones no leído en Tabs dentro de TabLayout?
  • Cómo obtener la vista de texto de la pestaña TabLayout
  • Cambiar el color de las pestañas de navegación mediante programación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.