mitaichik
@mitaichik

Что с производительностью RelativeLayout / ConstraintLayout?

Всем привет!

Есть у меня один список (RecyclerView) где каждый item имеет довольно сложный layout (около 40ка lineralayout'ов, textview и т.п.)

Сверстан он довольно топорно - везде LinerLayout и TableLayout (это вообще первый сверстанный мной макет, не обессудьте).

Сейчас я его пределываю, и вот думаю задействовать RelativeLayout / ConstraintLayout.
Вопрос: они производительнее чем куча вложенных LinearLayout (местами - с заданными layout_weight)?

Потому что сейчас на старых телефонах прокрутка списка иногда подтармаживает, не особо заметно, но не приятно.
  • Вопрос задан
  • 1723 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Relative/Constraint будет быстрее кучи Linear'ов c весам. Веса тут важны, тк они дают второй проход по детям Linear'a, и сводят на нет его простоту. Вложенность это плохо всегда.

На самом деле, могу высказать непопулярное мнение - если есть сложный layout внутри Recycler'а, и этот layout необобщенный, а очень даже конкретный, то есть смысл подумать над тем, чтобы сделать его кастомным. То есть унаследоваться от ViewGroup, накидать вьюх (addView)и реализовать onMeasure/onLayout. Если сделать это правильно, то это будет 100% быстрее любого layout'a общего назначения.

Для себя вывел эмпирическое правило - Constraint'у внутри Recycler'a не место. Тормозит.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Чем меньше уровней вложеннности, тем выше производительность.
С ConstraintLayout работать удобней и он побыстрей, чем RelativeLayout, но не сильно и не всегда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы