Белый фон во время запуска приложения
Я хочу избавиться от белого цвета в течение короткого периода, когда мое приложение запускается, но содержимое пока не отображается.
Моей основной деятельностью является использование стиля (из манифеста), который расширяет @style/Theme.Sherlock.Light.DarkActionBar
с фоном, установленным на <item name="android:background">@android:color/transparent</item>
. Нигде в моем макете я не использую белый цвет фона, но он появляется на короткое время во время запуска приложения.
В HierarchyViewer я экспортировал слои и проверял обратно, что в иерархии макета действительно нет белого.
Какие настройки управляют цветом фона перед тем, как макет рисуется? Спасибо.
Ответы
Ответ 1
В вашей теме есть еще один фоновый атрибут - windowBackground
, и вы неявно устанавливаете его на белый, наследуя свой стиль от @style/Theme.Sherlock.Light.DarkActionBar
(обратите внимание на часть .Light.
в имени).
Вы можете использовать темную версию темы или установить ее явно, включив windowBackground
в определение стиля:
<item name="android:windowBackground">@color/your_color</item>
Ответ 2
<style name="Theme.Transparent" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
</style>
Ответ 3
Или вы можете использовать Drawable. Я создал тему для моего экрана-заставки, как показано ниже :)
<style name="SceneTheme.Light.NoActionBar" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="SceneTheme.Light.NoActionBar.Transparent.StatusBar" parent="SceneTheme.Light.NoActionBar">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowBackground">@drawable/bg_splash</item>
</style>