2010-11-04 4 views
0

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

У меня есть список предметов, которые могут содержать фотографии, текст справа, изображение снизу и текст ниже. Очень странно, я знаю. Каждый из них может присутствовать для элемента. Единственное, что всегда будет, это название.

Итак, мой вопрос - как лучше всего создать каждый элемент списка элементов? Я думаю, что я должен использовать этот getView для создания каждого вида. Но при создании каждого представления лучше всего 1) создать представление динамически и добавить изображение, например, если оно существует, или 2) создать XML-файл со всеми возможными элементами и скрыть их в зависимости от элемента?

ответ

3

С точки зрения производительности # 2 лучше, потому что вы сможете повторно использовать преобразование, представленное ListView, вашему адаптеру в качестве аргумента getView(). Чтобы разрешить прокрутку списка ListView, вам необходимо избегать создания вида во время вызова getView().

Вы можете найти эффективную реализацию getView() в this sample from the Developer Guide. Есть 2 важных момента:

  • повторное использование convertView при наличии
  • использовать ViewHolder прикрепленную к View, чтобы избежать того, чтобы снова найти свои вложенные виды в каждом вызове в GetView()
+0

У вас есть пример? В любом случае, я планировал сделать № 2, но теперь я заинтригован, потому что думал, как только вы создадите представление, вы не сможете его повторно использовать. Любой образец кода был бы замечательным. –

0

Я бы пошел с №2. Вы можете создать раскладку xml со всеми присутствующими элементами, а затем написать адаптер списка, в котором вы можете скрыть и показать элементы по мере необходимости. Таким образом, если вам нужно изменить макет, вы можете просто настроить xml.

+0

Спасибо , вот к чему я склонялся. Использование getView кажется правильным решением, верно? –

+0

Да. это верно. – CaseyB

Смежные вопросы