2012-03-22 22 views

risposta

27

ScrollView viene utilizzato per mettere differenti o stesso punto di vista del bambino o layout e il tutto può essere fatto scorrere.

ListView viene utilizzato per inserire la stessa vista o layout di figlio di più elementi. Tutti questi elementi sono anche scorrevoli.

Simply ScrollView è sia per la raccolta omogenea che eterogenea. ListView è solo per la raccolta omogenea.

+0

base sull'adattatore un controllo ListView può essere altrettanto eterogenea che uno ScrollView. La differenza è che i contenuti di ListView sono supportati dall'adattatore, mentre ScrollView funziona con un singolo figlio View/ViewGroup, ovviamente questo può essere creato anche dal codice. – dzsonni

+39

Questa risposta manca in realtà un punto importante, ovvero che in ListView le viste vengono create su richiesta. Le viste in ListView vengono riciclate e non vi sono mai più viste nella gerarchia di visualizzazione che possono essere visualizzate sullo schermo. Con ScrollView tutte le viste sono in memoria e nella gerarchia anche se non sono visualizzate sullo schermo. Non ottieni Riciclaggio vista e non è supportato da un adattatore. –

+5

"ListView è solo per raccolta omogenea": questo punto non è corretto e ingannevole lo sviluppatore. ListView può anche popolare viste eterogenee dal livello api 1. –

0

A ListView è supportato da un adattatore, che contiene un DataSource. Ciò consente di visualizzare facilmente i dati in righe.

Un ScrollView consente di inserire il contenuto al suo interno e, se il contenuto supera le dimensioni di ScrollView, consente all'utente di scorrere.

Entrambi hanno i loro usi, ma dipende da cosa si sta tentando di fare.

24

Sono completamente diversi.

A ScrollView è un semplice contenitore a scorrimento che è possibile utilizzare per scorrere qualsiasi cosa si metta al suo interno, che potrebbe essere un elenco di elementi o potrebbe non esserlo.

http://developer.android.com/reference/android/widget/ScrollView.html

Un ListView è molto specificamente progettato per contenere elenchi, dove elementi tipicamente lo stesso aspetto (o almeno seguono un modello, per esempio i titoli di sezione). ListView è anche progettato per connettersi a un'origine dati di qualche tipo, SQLite, array, provider di contenuti, ecc. ListView può scalare per gestire un numero enorme di voci di elenco.

http://developer.android.com/resources/tutorials/views/hello-listview.html

Se si dispone di dati è necessario mostrare in un elenco, utilizzare un ListView. Se hai solo bisogno di scorrere i contenuti, allora un ScrollView è abbastanza probabilistico.

1

ScrollView posiziona semplicemente il suo contenuto in un contenitore scorrevole, è possibile modificarne il contenuto solo aggiungendo le viste.

ListView è una classe che utilizza un adattatore che gestisce la creazione delle viste per gli oggetti dati, è sufficiente modificare i dati e le modifiche al layout vengono eseguite automaticamente dall'adattatore.

ScrollView deve essere utilizzato quando si dispone di uno schermo (ad esempio un modulo con più campi) che non si adatta a uno schermo su dispositivi di piccole dimensioni, in quanto tale scrollview offre all'utente la possibilità di scorrere verso il basso.

ListView deve essere utilizzato quando si rappresentano insiemi di dati.

Si può leggere su questi a http://developer.android.com/guide/index.html

0

Poiché un'immagine vale più di mille parole, qui ci sono perfetti esempi di vita reale:

ListView è come il Kijiji app

Scrollview è come il EBay app

Inoltre, vedere una scrollview come un cartellone o un muro, dove puoi mettere un sacco di cose diverse su di esso.

E un ListView è più simile a una pagina di risultati: i risultati sono tutti della stessa natura, quindi, si inseriscono perfettamente in una lista. Come un elenco di contatti : tutti condividono la stessa struttura; telefono nome indirizzo numero, ecc ....

1

ListView: -

In ListView È possibile gestire layout di oggetti in XML facilmente che si desidera visualizzare nella lista.

È necessario comunicare all'adattatore molti elementi desiderati nell'elenco di visualizzazione.

È possibile progettare sia omogenea e una vista eterogenei a seconda del vostro requisito overrifing metodo getItemViewType() dell'adattatore.

In ListView gli elementi nell'elenco sono creati in base alle dimensioni dello schermo. Ad esempio, quanti elementi possono apparire sullo schermo vengono creati punti di vista aggiuntivi (elementi) quando l'elenco viene fatto scorrere in fase di runtime. Le viste che vengono visualizzate una volta vengono memorizzate nella cache quando si spostano fuori dallo schermo e quando l'elenco viene riportato allo stato precedente vengono visualizzate le stesse visualizzazioni ma questa vista non viene creata, ma viene recuperata dalla cache.

ScrollView: -

concetto cache non è applicabile con ScrollView.

Tutte le viste sono create in una sola volta quando vengono a schermo e non vengono memorizzate nella cache quando si spostano fuori dello schermo durante lo scorrimento. Sono presenti nella memoria (principale) che può portare alla perdita di memoria perché il numero di oggetti creati non viene distrutto dal garbage collector poiché vengono referenziati fino a quando non si è sulla stessa pagina.

Sebbene sia possibile creare viste sia omogenee che eterogenee. Se ci sono più elementi da visualizzare nella lista, sarebbe noioso gestire il layout sia che si stia progettando in xml sia che si crei dinamicamente usando il codice Java.

È preferibile utilizzare scrollview se si dispone di una singola pagina che non contiene un elenco di elementi, ad esempio modulo di registrazione, modulo di prenotazione ma tale vista è più grande delle dimensioni dello schermo e quindi si fa scorrere ScrollView come vista principale tenendo presente che ScrollView può avere solo un layout/vista figlio diretto.