Каково максимальное количество дочерних представлений внутри FrameLayout в Android? - PullRequest
1 голос
/ 18 июня 2019

Я использую Tyring FrameLayout с несколькими дочерними элементами в нем. Я знаю, что с помощью атрибута android:layout_gravity я могу добавить несколько детей в FrameLayout. Но моя неясная часть заключается в том, влияет ли это на сторону производительности и Стоимость приложения, если я добавлю дополнительные дочерние элементы в FrameLayout

Ответы [ 2 ]

4 голосов
/ 18 июня 2019

примерно 80 это предел.

вы получите следующий пух, когда у вас слишком много просмотров в вашем макете

AndroidLintTooManyViews

Описание

В макете слишком много видов Использование слишком большого количества представлений в одном макете плохо для исполнения. Рассмотрите возможность использования сложных рисунков или других хитростей для уменьшение количества просмотров в этом макете. Максимальное количество просмотров по умолчанию 80, но может быть настроен с помощью переменной среды ANDROID_LINT_MAX_VIEW_COUNT.

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

2 голосов
/ 18 июня 2019

Каково максимальное количество дочерних представлений внутри FrameLayout в Android?

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

влияет ли это на производительность и на стоимость приложения, если я добавлю дополнительные дочерние элементы в FrameLayout

Добавление большего количества представлений, несомненно, займет больше времени для загрузки, чем уменьшение количества представлений. Правильный вопрос, который, я думаю, каков эффективный способ рендеринга представлений? Вложенные представления неэффективны, вы всегда должны стараться избегать глубокой иерархии , насколько это возможно, и вы можете достичь этого путем используя ConstraintLayout. Вы можете прочитать больше об оптимизации иерархий представления здесь .

...