Как лениво инициализировать / раздувать NavigationView - PullRequest
0 голосов
/ 09 ноября 2019

Я начал профилировать запуск приложений и выглядит как боковой ящик com.google.android.material.navigation.NavigationView требуется довольно много времени, чтобы надуть.

Поскольку NavigationView скрывается при запуске приложения, я думаю, что это должно бытьХорошо, чтобы задержать инфляцию.

Я пытался проверить подход ViewStub или AsyncLayoutInflator, но силл не нашел подходящего способа сделать эту работу.

Кто-то успешно инициализирует NavigationView асинхронно?

Обновление:

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

1 Ответ

0 голосов
/ 09 ноября 2019

Есть ли что-нибудь, что нужно загрузить из сети в вашем представлении навигации? Если да, вы можете использовать модели представления для этого и размещать свои данные в хостинге, связанном с этой моделью представления. Делая это, вы НЕ сможете ускорить инициализацию навигационной панели, но сможете сохранить данные, необходимые для ее заполнения, чтобы в следующий раз это не заняло так много времени. Таким образом, вы также можете отложить сетевые операции до первого открытия навигационного ящика.

Если вы не совершаете никаких сетевых вызовов для загрузки данных в навигационный ящик, а это занимает слишком много времени, необходимобыть что-то ужасно не так с тем, как он населен.

...