2010-08-14 22 views
16

Sto scrivendo una visualizzazione orizzontale, simile a quelle che conosci sistemi di forma tivo e simili. Per ogni canale c'è una riga con i programmi per le prossime 6 ore circa, con una larghezza proporzionale al tempo di riproduzione.ListView vs LinearLayout

La mia idea è di scrivere un widget personalizzato per ogni riga e impilarli uno sopra l'altro. Questo dovrebbe consentirmi di caricare i dati in modo incrementale, piuttosto che usare una grande vista personalizzata. Avrò comunque bisogno di pulsanti avanti/indietro nella parte superiore della pagina che aggiornino tutte le righe quando si fa clic.

Ora non sono sicuro se dovrei posizionare queste viste in un ListView o in un LinearLayout.

ho raccolto i seguenti vantaggi e svantaggi:

  • ListView
    • Pro
      • efficiente della memoria - ricicla nascosti Visualizzazioni
      • sembra essere usato da tutti, in Android comunità, per qualsiasi cosa.
      • Potrebbe essere più semplice renderlo pigro, durante l'aggiornamento delle righe, e quindi richiedere meno CPU.
    • Contro
      • Overkill - io non sarò con la maggior parte delle caratteristiche che ha da offrire
      • Può essere un po 'più difficile da attaccare i clickListeners.
  • LinearLayout
    • Pro
      • Semplice da usare. Fa quello che ti aspetteresti.
    • Contro
      • io non l'ho visto usato ovunque per lunghi elenchi.
      • Forse è più lento?

Il "sembra essere usato da tutti" argomento per ListView include anche il "Master" Twitter app, che Google utilizza per mostrare il "buon design Android". Inoltre, non sembrano utilizzare la maggior parte delle sue funzionalità.

Hai qualche esperienza con questo tipo di lavoro? Ci sono dei consigli che mi sono mancati durante la lettura dei documenti?

+0

è semplice da comprendere, Il layout può contenere la vista, ma una vista non può contenere un layout. Quindi pensa e usa in base alle tue necessità. –

+0

Anche io sono interessato ai trade off. Ho implementato una visualizzazione live di tutti i dati del sensore sia in LinearLayout che in ListView (Nexus 4). ListView era notevolmente più lento con aggiornamenti dello schermo limitati a 200ms ogni. Si noti che ho utilizzato ExpandableListView e non ho utilizzato adapter.onDataSetChanged(), ma ho modificato solo TextViews rilevanti. –

+0

domanda interessante – Fattie

risposta

1

Ho finito per utilizzare un widget personalizzato. Ancora non so quale dei citati sia più efficace.

2

Questa pianificazione è simile all'app Google IO 2010. È possibile il codice checkout e vedere come l'hanno fatto.

+1

Grazie per il suggerimento. Una fantastica app da cui imparare. Tuttavia, la vista di pianificazione nell'app è verticale anziché orizzontale e viene creata come un unico layout personalizzato. Inoltre, non deve supportare molte voci. Quindi non mi aiuta veramente con il mio problema decisionale complessivo. –