Разница между ScrollView и ListView - PullRequest
36 голосов
/ 22 марта 2012

Может ли кто-нибудь объяснить разницу между просмотром прокрутки и просмотром списка?Когда использовать какой?И какой из них более эффективен?

Ответы [ 6 ]

26 голосов
/ 22 марта 2012

ScrollView используется для размещения разных или одинаковых дочерних представлений или макетов, и все можно прокручивать.

ListView используется для установки одного и того же дочернего представления или макета.как несколько предметов.Все эти элементы также можно прокручивать.

Simply ScrollView предназначен как для однородного, так и для гетерогенного сбора.ListView предназначен только для однородной коллекции.

24 голосов
/ 22 марта 2012

Они совершенно разные.

A ScrollView - это простой контейнер с прокруткой, который можно использовать для прокрутки всего, что вы помещаете в него, который может быть списком элементов или не отображать его.

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

A ListView специально разработан для хранения списков, где элементы обычно выглядят одинаково (или, по крайней мере, следуют шаблону, например, заголовкам разделов). ListView также предназначен для подключения к какому-либо источнику данных, SQLite, массиву, поставщику контента и т. Д. ListView может масштабироваться для обработки огромного количества элементов списка.

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

Если у вас есть данные, которые необходимо отобразить в списке, используйте ListView. Если вам просто нужна прокрутка контента, то ScrollView достаточно вероятен.

2 голосов
/ 17 декабря 2016

ListView: -

В ListView Вы можете легко управлять макетом элементов в xml, которые вы хотите отобразить в списке.

Вы должны указать адаптеру, сколько элементов вы хотите вваш список отображения.

В зависимости от ваших требований вы можете создавать как гомогенные, так и гетерогенные представления, переопределив метод адаптера getItemViewType ().

В ListView элементы в списке создаются в соответствии с экраномразмер.т.е. сколько элементов может отображаться на экране, создаются дополнительные представления (элементы), когда список прокручивается во время выполнения.Представления, которые отображаются один раз, кэшируются, когда они выходят за пределы экрана, и когда список прокручивается обратно в предыдущее состояние, отображаются те же представления, но это представление времени не создается, а извлекается из кэша.

ScrollView:-

Концепция кэширования не применима в ScrollView.

Все представления создаются сразу, когда они появляются на экране, и не кэшируются, когда они выходят за пределы экрана во время прокрутки.Они присутствуют в памяти (основной), что может привести к утечке памяти, поскольку сборщик мусора не уничтожает количество созданных объектов, так как на них ссылаются, пока вы не на той же странице.

Хотя вы можете создать обагомогенные, а также гетерогенные взгляды.Если в вашем списке будет отображаться больше элементов, было бы утомительно управлять макетом независимо от того, разрабатываете ли вы его в xml или создаете динамически с помощью кода Java.

Предпочтительно использовать scrollview, если у вас есть одна страницакоторый не содержит списка элементов, например, регистрационную форму, форму бронирования, но этот вид больше размера экрана, затем поместите ScrollView в качестве родительского представления, также имейте в виду, что ScrollView может иметь только один прямой дочерний макет / представление.

2 голосов
/ 22 марта 2012

ScrollView просто помещает свое содержимое в прокручиваемый контейнер, вы можете редактировать его содержимое только путем добавления к нему представлений.

ListView - это класс, использующий адаптер, который обрабатывает создание представлений для ваших объектов данных.необходимо только редактировать данные, а изменения макета выполняются адаптером автоматически.

ScrollView следует использовать, когда у вас есть экран (например, форма с несколькими полями), который не помещается в один экран нанебольшие устройства, так как такое scrollview предоставляет пользователю возможность прокручивать вниз.

ListView следует использовать при представлении наборов данных.

Вы можете прочитать об этом в http://developer.android.com/guide/index.html

0 голосов
/ 08 декабря 2014

Поскольку изображение стоит тысячи слов, вот идеальные примеры из реальной жизни:

Listview похож на Kijiji приложение

Scrollview похоже на EBay app

Кроме того, вы можете увидеть вид прокрутки, например, рекламный щит или стену, где вы можете разместить на нем кучу разных вещей.

И просмотр списка больше похож на страницу результатов: результатывсе имеют одинаковую природу, поэтому они идеально вписываются в список.Как список контактов : все они имеют одинаковую структуру;номер телефона, адрес, адрес и т.д ....

0 голосов
/ 22 марта 2012

ListView поддерживается адаптером, который содержит источник данных. Это позволяет легко отображать данные в строках.

ScrollView позволяет помещать содержимое внутри него, а если содержимое превышает размер ScrollView, он позволяет пользователю прокручивать.

Они оба используют, но это зависит от того, что вы пытаетесь сделать.

...