ListView vs Nested Layout [Плюсы / Минусы] - PullRequest
0 голосов
/ 27 сентября 2011

Я работаю над приложением для Android, и я столкнулся с решением, которое я не могу принять так или иначе. Я надеялся, что кто-нибудь сможет пролить свет на общие практики и теорию, чтобы поддержать их.

Вот проблема:

Я хочу получить список элементов с изображениями и текстом, например, таблицей ...

Страна -.-.-.-.-.-.- Pop -.- SqrMi

[img] США -.-.-.-.-.-.- ххх -.-.- ххххх

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

Зачем мне даже рассматривать вложенный макет? Гибкость. Я могу разработать разделители, возможно, добавить пару графиков выше / ниже списка. Изменяйте высоту каждого из элементов списка (например, что, если я хочу показать график в одном элементе списка, а не график в следующем) и т. Д.

Я не уверен, что я нарушаю общепринятые методы здесь. Кто-нибудь может пролить свет на это?

Ответы [ 2 ]

2 голосов
/ 27 сентября 2011

Единственная серьезная проблема, которая возникает при использовании вложенных макетов, - это потребление памяти.ListView повторно использует свои дочерние элементы, поэтому он не создает больше дочерних элементов, чем может отображать в один моментЭто описание немного упрощено, но я надеюсь, что оно показывает цель ListView.Также ListView имеет собственную быструю прокрутку, поэтому ему не нужно измерять все дочерние элементы, чтобы определить ее размер.И ListView s используют адаптеры, чтобы заполнить себя данными.Это хороший и удобный способ получения данных.

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

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

0 голосов
/ 27 сентября 2011

Все, что вы описали для своего «вложенного макета», достижимо с ListView. Просто используйте разные типы строк, используйте верхний / нижний колонтитулы в адаптере.

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

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