Подтвердить что ты не робот

Белый фон во время запуска приложения

Я хочу избавиться от белого цвета в течение короткого периода, когда мое приложение запускается, но содержимое пока не отображается.

Моей основной деятельностью является использование стиля (из манифеста), который расширяет @style/Theme.Sherlock.Light.DarkActionBar с фоном, установленным на <item name="android:background">@android:color/transparent</item>. Нигде в моем макете я не использую белый цвет фона, но он появляется на короткое время во время запуска приложения.

В HierarchyViewer я экспортировал слои и проверял обратно, что в иерархии макета действительно нет белого.

Какие настройки управляют цветом фона перед тем, как макет рисуется? Спасибо.

4b9b3361

Ответ 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>