首页 > 解决方案 > 启动屏幕结束后,Android 主题不会动态重置

问题描述

我正在我的android应用程序中实现启动画面,为此我创建了一个可绘制资源,然后在themes.xml中添加了以下内容

    <style name="splashScreenTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <item name="android:background">@drawable/splash_screen_background</item>
        <item name="android:statusBarColor">@color/colorBlack</item>
    </style>

之后在AndroidManifest.xml文件中进行了以下更改

android:theme="@style/splashScreenTheme">

然后在MainActivity.kt我尝试了以下两种方法来动态重置主题,每次一个,然后一起

方法一

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setTheme(R.style.Theme_CardViewDashboard)
        setContentView(R.layout.activity_main)
    }

方法二

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        theme.applyStyle(R.style.Theme_CardViewDashboard, true)
        setContentView(R.layout.activity_main)
    }

但主题没有得到重置。

附上应用SplashScreen之前和应用初始屏幕之后的屏幕截图

标签: androidkotlin

解决方案


推荐阅读