2010-08-14 10 views
16

Estoy escribiendo una vista de televisión horizontal, similar a las que usted conoce de los sistemas tivo y similares. Para cada canal hay una fila con los programas para las próximas 6 horas más o menos, con un ancho proporcional a su tiempo de reproducción.ListView vs LinearLayout

Mi idea es escribir un widget personalizado para cada fila, y apilarlas una encima de la otra. Esto debería permitirme cargar los datos de forma incremental, en lugar de usar una gran vista personalizada. Sin embargo, seguiré necesitando botones de avance/retroceso en la parte superior de la página que actualicen todas las filas al hacer clic.

Ahora no estoy seguro de si debo colocar estas Vistas en un ListView o LinearLayout.

He recogido las siguientes ventajas y desventajas:

  • ListView
    • Pros
      • eficiente de la memoria - Recicla ocultos Vistas
      • parece ser utilizado por todo el mundo, en el Android comunidad, para cualquier cosa.
      • Puede ser más fácil hacerlo perezoso al actualizar las filas y, por lo tanto, requiere menos CPU.
    • Contras
      • Overkill - que no va a utilizar la mayor parte de las características que tiene que ofrecer
      • Puede ser un poco más difícil unir los clickListeners.
  • LinearLayout
    • Pros
      • simple de usar. Hace lo que esperarías
    • Contras
      • no he visto que se usa en cualquier lugar de largas listas.
      • ¿Quizás es más lento?

El "parece ser utilizado por todo el mundo" argumento para ListView también incluye el "Maestro" aplicación de Twitter, que utiliza Google para mostrar "Un buen diseño de Android". Tampoco parecen estar usando la mayoría de sus características.

¿Tienes alguna experiencia con este tipo de trabajo? ¿Hay alguna recomendación que me haya perdido al leer los documentos?

+0

es fácil de entender, El diseño puede contener la vista, pero una vista no puede contener un diseño. Así que piense y use de acuerdo a su necesidad. –

+0

Estoy interesado en las compensaciones también. Implementé una vista en vivo de todos los datos del sensor tanto en LinearLayout como en ListView (Nexus 4). El ListView fue significativamente más lento con actualizaciones de pantalla limitadas a cada 200 ms. Tenga en cuenta que utilicé una ExpandableListView y no usé adapter.onDataSetChanged(), pero solo cambié las TextViews relevantes. –

+0

pregunta interesante – Fattie

Respuesta

1

Terminé usando un widget personalizado. Todavía no sé cuál de los mencionados es más efectivo.

2

Ese programa es similar a la aplicación Google IO 2010. Puede checkout su código y ver cómo lo han hecho.

+1

Gracias por el consejo. Una gran aplicación para aprender. Sin embargo, la vista de programación en la aplicación es vertical en lugar de horizontal y se genera como un gran diseño personalizado. Tampoco tiene que admitir muchas entradas. Por lo tanto, realmente no me ayuda con mi problema de decisión general. –