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


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

6 34

6 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ListView: -

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

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

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

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

ScrollView : -

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

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

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

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

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

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

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

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

Listview похож на Kijiji app

Scrollview похож на EBay app

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

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