0

我用来setDecorFitsSystemWindows(window, false)在状态栏下方显示一些内容。将 SplashScreen API (1.0.0-alpha01) 应用于 Activity 后,windowBackground对 Android 8 没有影响(但在 Android 12 上运行良好)

这里是完整的demo代码,SplashScreen的背景是蓝色的,Activity的windowBackground是红色的

样式.xml

<style name="Theme.MySplash" parent="Theme.SplashScreen">
    <item name="windowSplashScreenBackground">#00f</item>
    <item name="windowSplashScreenAnimatedIcon">@drawable/ic_launcher_foreground</item>
    <item name="postSplashScreenTheme">@style/Theme.AndroidSplashScreen12</item>
</style>

<style name="Theme.AndroidSplashScreen12" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <item name="android:windowBackground">#f00</item>
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>

活动

class WindowCompatActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        WindowCompat.setDecorFitsSystemWindows(window, false)
        super.onCreate(savedInstanceState)
        installSplashScreen()
        setContentView(R.layout.activity_window_compat)
    }
}

安卓 12 像素 4XL

安卓 8 小米 A2

我希望应用程序显示为像 Android 12 这样的红色背景色。

4

0 回答 0