Подтвердить что ты не робот

Разница между ScrollView и ListView

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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 достаточно вероятен.

Ответ 3

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

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

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

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

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

Ответ 4

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

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

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

Ответ 5

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

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

Scrollview похож на приложение EBay

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

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

Ответ 6

ListView: -

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

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

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

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

ScrollView: -

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

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

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

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