2016-11-03 4 views
1

У меня есть составные компоненты, которые используются в качестве элементов ListView. Чтобы увеличить производительность, я использую держатель представления для рендеринга моего элемента ListView, но поскольку каждый из них имеет составной компонент внутри, он все еще медленный, и каждый компонент каждого компонента требует раздувания компонента каждый раз.Держатель Android для составных компонентов

Есть ли способ, которым я могу использовать что-то вроде шаблона ViewHolder для моего составного компонента?

+0

Viewholder шаблон использовать, чтобы сохранить ссылку на взгляды, так что вам не нужно выполнять findViewById() каждый раз вы хотите для привязки ваших данных для просмотра. Это не имеет никакого отношения к раздуванию взглядов. – Weizhi

+0

Используйте RecyclerView, который повторно использует ViewHolders вместо ListView. Уменьшите вложенность представлений (использование может использовать ConstraintLayout для составных представлений). Если у вас есть изображения, которые вы загружаете в составные представления, загружайте их с помощью Picasso, потому что он будет уменьшать их до загрузки их в память. – toshkinl

ответ

0

Для ListView хорошее повышение эффективности использует методы getTag() и setTag() для сохранения представлений, определенных в viewholder. Затем представления не создаются снова и повторно используются, в которых вы можете просто изменить контент.

Кроме того, RecyclerView всегда лучший выбор.

Ref: -

  1. (RecyclerView vs. ListView)
  2. (What is the working of setTag and getTag in ViewHolder pattern?)
Смежные вопросы