12

我想在我的应用程序启动但内容尚未显示的短时间内摆脱白色。

我的主要活动是使用一种样式(来自 Manifest),@style/Theme.Sherlock.Light.DarkActionBar其背景设置为<item name="android:background">@android:color/transparent</item>. 在我的布局中,我没有使用白色背景颜色,但它会在应用程序启动期间出现片刻。

在 HierarchyViewer 中,我导出了图层并检查了布局层次结构中确实没有白色实体。

什么设置在布局绘制之前控制背景颜色?谢谢。

4

3 回答 3

40

您的主题中还有另一个背景属性 - windowBackground,您通过继承您的样式将其隐式设置为白色@style/Theme.Sherlock.Light.DarkActionBar(注意.Light.名称中的部分)。

您可以使用深色版本的主题,也可以通过包含windowBackground在您的样式定义中来明确设置它:

<item name="android:windowBackground">@color/your_color</item>   
于 2013-01-22T15:41:24.057 回答
0

或者你可以使用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>
于 2019-07-24T02:05:58.023 回答
0
<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>
于 2017-01-17T09:28:52.137 回答