@Vermut756

Как на Android заставить ProgressBar показаться уже в onCreate, в смысле как можно быстрее независимо от тяжести других элементов?

Есть Activity, в ней фрагмент, в этом фрагменте есть WebView во весь фрагмент, а также FrameLayout, в котором ProgressBar поверх WebView.

в TheFragment.OnCreateView инфлатится лейаут, затем происходит настройка WebView, также может происходить еще что-то - работа с базой там, затем там же вызывается loadUrl, а затем в WebViewClient.onPageFinished прогрессбар прячется.

А где же показывается прогрессбар перед всем этим? В том-то и дело, что он изначально visible.
Тем не менее, при открытии фрагмента проходит около полусекунды прежде чем он появится.
Как можно ускорить?

Не влияет ли то, что WebView в дереве расположен перед ProgressBar и на его создание уходит это время?

Верно ли понимаю, что onCreateView вызывается до каких-либо отрисовок, если да, то можно ли вызвать отрисовку уже в нем чтобы прогрессбар хотя бы появился (пусть и в зависшем состоянии).
  • Вопрос задан
  • 234 просмотра
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Можно заинфлейтить частями - обычным способом прогрессбар с лёгкой частью иерархии, отдельно, c помощью AsyncLayoutInflater'a - тяжёлую часть. При этом надо убедиться, что вебвью можно асинхронно заинфлейтить (по ссылке - более подробно).
Ответ написан
Ваш ответ на вопрос

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

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