ProgressBar не оживляет при раздувании viewstub

У меня есть Activity с этой структурой:

FrameLayout ProgressBar ViewStub 

ViewStub раздувает фрагмент в отдельном потоке. Мне нужно отобразить прогресс во время загрузки фрагмента. Проблема заключается в том, что ProgressBar не вращается, пока заглушка раздувается (в моем случае около половины секунды: это тяжелый фрагмент) Я пробовал все: отображение / скрытие представления, недействительность, отображение их в ViewSwitchers … и т. Д., Ничего Работает, как только ViewStub раздувается, он начинает вращаться, это похоже на то, что ui заморожен, пока он раздувается, но делать это в другом потоке, похоже, не улучшается. Что мне делать?

Solutions Collecting From Web of "ProgressBar не оживляет при раздувании viewstub"

Фрагмент должен быть загружен в поток пользовательского интерфейса, и поскольку пользовательский интерфейс занят фрагментом, ProgressBar не вращается . Вам нужно разделить загрузку данных в фрагменте на материал пользовательского интерфейса. Я бы проверил и проверил, что именно работает, и быстро запустил фрагмент, я бы использовал загрузчик, чтобы загрузить данные, представляя индикатор прогресса пользователю (внутри фрагмента). Да, переместите прогресс в макет фрагмента и контролируйте все, оттуда, потому что я не знаю, когда происходит загрузка фрагмента, активность не предполагает заботы об этом.

В основном, что @Luksprog сказал в своем комментарии правильно, если вы вызываете viewStub.post (), это НЕ запускает код внутри сообщения в фоновом потоке. Все, что он делает, это выполнить runnable для потока пользовательского интерфейса. Это может сработать, если вы это сделаете

 new Thread(new Runnable() { @Override public void run() { viewStub.inflate(); initFragment(); } }).start() 

Хотя, как @Luksprog также заявил – это плохая практика, чтобы создавать представления на фоне потока. Поэтому, возможно, лучшим решением является переместить вызов .inflate () снаружи (на основной поток), а затем вызвать initFragment () из фоновой нити и поместить туда весь тяжелый подъем.