Как на Android заставить ProgressBar показаться уже в onCreate, в смысле как можно быстрее независимо от тяжести других элементов?
Есть Activity, в ней фрагмент, в этом фрагменте есть WebView во весь фрагмент, а также FrameLayout, в котором ProgressBar поверх WebView.
в TheFragment.OnCreateView инфлатится лейаут, затем происходит настройка WebView, также может происходить еще что-то - работа с базой там, затем там же вызывается loadUrl, а затем в WebViewClient.onPageFinished прогрессбар прячется.
А где же показывается прогрессбар перед всем этим? В том-то и дело, что он изначально visible.
Тем не менее, при открытии фрагмента проходит около полусекунды прежде чем он появится.
Как можно ускорить?
Не влияет ли то, что WebView в дереве расположен перед ProgressBar и на его создание уходит это время?
Верно ли понимаю, что onCreateView вызывается до каких-либо отрисовок, если да, то можно ли вызвать отрисовку уже в нем чтобы прогрессбар хотя бы появился (пусть и в зависшем состоянии).
Можно заинфлейтить частями - обычным способом прогрессбар с лёгкой частью иерархии, отдельно, c помощью AsyncLayoutInflater'a - тяжёлую часть. При этом надо убедиться, что вебвью можно асинхронно заинфлейтить (по ссылке - более подробно).