Android: вложенность FrameLayouts – какова высокая накладная производительность?

Чтобы внедрить чистую архитектуру с отдельными и многократно используемыми компонентами пользовательского интерфейса, мне нужно иметь иерархии вложенных FrameLayouts (до 3-4 вложенных FrameLayouts ), все из которых имеют как layout_width и layout_height установленные в match_parent (общая идея этой архитектуры Описан в этом ответе ).

Я пришел к удивлению, есть ли заметные служебные издержки, связанные с этой практикой вложения FrameLayouts . Чтобы сделать вопрос менее абстрактным, давайте обсудим его в контексте двух конкретных иерархий: «статическая» иерархия (ничего не движется по экрану) и «прокручиваемая» иерархия (пользователь может прокручивать экран).

«Статическая» иерархия:

Введите описание изображения здесь

Как только отображается экран, содержащий эту иерархию, ничего больше не меняется.

«Прокручиваемая» иерархия:

Введите описание изображения здесь

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

Я вообще не беспокоюсь о «статической» иерархии – накладные расходы вложенных FrameLayouts в этом случае выплачиваются один раз и не будут влиять на производительность макета каким-либо заметным образом.

  • Q1: Правильно ли это допущение, или есть некоторые сценарии снижения производительности, с которыми я могу столкнуться?

Как насчет «прокручиваемого» макета? Интересно, влияет ли тот факт, что внутренний ListView упакован в несколько FrameLayouts влияет на его производительность прокрутки …

  • Q2: Внешние FrameLayouts влияют на вложенную производительность прокрутки ListView ?
  • Q3: Если ответ на Q2 «да», каковы же накладные расходы в «прокручиваемом» случае?

Intereting Posts
Двумерное обнаружение столкновений прямоугольников в Android Получите общий объем оперативной памяти, который использует приложение на Android Свертывание макета инструментальной панели с помощью Viewpager внутри NestedScrollView Задержка при замене фрагмента ViewPager в панели навигации над FrameLayout? Могу ли я полагаться на сборщик мусора, чтобы остановить AsyncTask? Файл библиотеки присутствует в файле .apk? Пользовательская панель действий показывает темное заполнение, оставшееся после обновления, до версии Android SDK версии 21 Multi-points Trilateration, которые будут использоваться с сигналами маяка на Android Использование AudioTrack в Android для воспроизведения WAV-файла Android: событие click после Activity.onPause () Что такое атрибут mimeType в <data>? Пользовательские маркеры, показывающие белый цвет на некоторых устройствах (Google Maps v3 Android SDK) Как включить переднюю камеру в webview для Android Как извлечь атрибут name из массива строк? Android 4.3+, android: textColorHint не работает, цвет подсказки всегда белый