Vista de desplazamiento horizontal: ¿Es realmente una solución?

Como miles de otros desarrolladores, en algún momento quería una galería horizontal de imágenes. (En mi caso lo quería en una página de PageViewer). Entonces escuché que había un widget llamado android.wiget.Gallery que fue diseñado sólo para esta situación.

Pronto, empecé a oír que Gallery estaba obsoleto, y comprobando StackOverflow, uno después de los otros posts sugirió que HorizontalScrollView es el camino a seguir.

Abandono Gallery y configuro todo en HorizontalScrollView. En primer lugar me di cuenta de que HorizontalScrollView no es realmente un widget en un sentido que sólo puede manejar un diseño de raíz. Ok, así que implementé el diseño de la raíz como LinearLayout. Agregue todos mis desplazamientos en LinearLayout y compruebe que HorizontalScrollView tampoco tiene un adaptador. No hay problema, voy a hacer un ciclo a través de las vistas, inflando uno por uno, y el lanzamiento de un AsyncTask para cargar la imagen. Funciona bien en 4.03. Luego lo corrí en 2.2 y adivina qué, había demasiadas tareas asíncronas en ejecución – por lo que se bloquea. Tal vez un único AsyncTask que se ejecuta a través de todos, pero hay más de 30 imágenes. Ahora estoy comenzando a considerar la galería otra vez.

Pero entonces oigo que hay un HorizontalListView. Lo implementé, además de un adaptador. Funciona perfectamente, pero ahora el desplazamiento no es tan suave (dentro de una página de ViewPager), y se queda atascado después de volver a cargar varias veces (dentro de una página de ViewPager). Me pregunto si debería pasar más tiempo modificando HorizontalListView o revisar mis otras tres implementaciones. Tal vez no debería haber tomado la deprecación tan en serio.

¿Alguna sugerencia?

Epílogo:

Al final, decidí quedarme con el HorizontalScrollView para dentro de ViewPager, y usar el HorizontalListView para otras situaciones. Esto se debió a las eficiencias de desplazamiento, a la velocidad del rayo, y pude finalmente elaborar un adaptador personalizado sustituyendo onScroll en el HorizontalScrollView, y en combinación con CountDownTimer actualizar las imágenes dentro de un rango periódicamente independientemente de la velocidad. Otra solución sugerida fue usar la velocidad para iniciar la descarga, cuando lo suficientemente lento. Sería genial si los advoates de HorizontalListView comprobaran su comportamiento dentro de un ViewPager, ya que estoy seguro de que podría ser optimizado y mejorado. Esto habría sido mi solución preferida si tuviera más tiempo. Pero el tiempo es fugaz ..

Si todavía estás decidido a trabajar con un HorizontalScrollView , sugiero buscar aquí el diseño y aquí para manejar el oyente de selección de elementos. No me gusta esta ruta sin embargo, como usted es esencialmente sólo hacer un LinearLayout gigante dentro de la HorizontalScrollView que puede causar problemas de memoria como todas las imágenes persisten incluso cuando fuera de la pantalla.

Personalmente, yo sugeriría el uso de la HorizontalListView encontrado aquí .

  • RelativeLayout textviews superpuestas
  • Configuración de la fuente de texto del botón en android
  • Diseño de pantalla múltiple de Android
  • Teclado cubre la pantalla en lugar de empujar hasta el diseño?
  • Cómo hacer un indicador de página para reciclaje horizontal
  • No se puede seleccionar el tema AppCompat para la vista de Android Studio Design
  • ¿Cuándo debo usar fragmentos en las aplicaciones de Android? ¿Por qué utilizar fragmentos?
  • ¿Qué componente de visualización utiliza Google Plus App (Stream)?
  • ¿Qué es android: layout_marginStart
  • Android: Visualización de WhiteSpace al cerrar Soft Keyboard
  • ¿Cómo quitar el foco sin fijar el foco a otro control?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.