当前位置: 首页 > 知识库问答 >
问题:

如果应用程序主题与系统主题不同,则无法正确加载

劳夕
2023-03-14

我有一个问题,我的应用程序中有两个主题。黑暗主题和光明主题

问题是,如果我将应用主题设置为与系统主题不同,则应用主题无法正确加载。

Light主题继承自:

<style name="Theme.Light" parent="Theme.MaterialComponents.Light.NoActionBar">

黑暗主题继承自:

<style name="Theme.Dark" parent="Theme.MaterialComponents.NoActionBar">

e、 g.如果系统主题为浅色,而应用程序主题使用从“主题”继承的深色主题。材料组件。NoActionBar'则主题将无法正确呈现,反之亦然。

我使用的是values night目录,它保存了黑暗主题中使用的所有颜色。

共有1个答案

丌官浩旷
2023-03-14

我通过将应用程序设置为根据应用程序主题切换主题模式来修复问题。

fun setTheme(){
        if(getThemeRes() == R.style.Theme_Dark){
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
        }
        else{
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
        }
    }

返回包含当前设置主题的整数资源的函数。

fun getThemeRes() = packageManager.getPackageInfo(
        packageName,
        PackageManager.GET_META_DATA
    ).applicationInfo.theme
 类似资料:
  • 我想创造一个黑暗的主题,并有完全控制哪些元素得到哪种颜色。我在value(night)

  • 与 主题变得黑暗,在“风格”中造型它没有效果。我甚至删除了基本的applicaion主题--没有效果。所以,这不是一个合适的方式。需要任何帮助,我甚至不知道下一步该怎么办。

  • 我正在尝试从CloudWatch启动StepFunction。当事件源是一个时间表时,这就像一个魅力。但是,当我尝试创建事件模式来观看相应的SNS主题时,CloudWatch看不到它的发布。我尝试了两种默认模式: 并使用arn: 在这两种情况下,当我发布到主题时都没有发生任何事情。我做错了什么?更新:不幸的是,我不明白“事件模式”规则是干什么的,它在其他情况下不起作用——即使事件是从lambda手

  • 我一直在尝试更改progressBar的颜色,我注意到它使用的是accentColor(在我的例子中是蓝色的),我一直在尝试在没有运气的情况下更改它。 我错过什么了吗? 这是我的风格。xml 这是我在布局中的元素。xml 我的活动:

  • 我安装了一个主题,这样做之后,当我从命令行运行和mkdocs命令时,我得到以下错误: 我在mac上运行的是:Python: 2.7.15 PIP: 20.0.2 对于如何解决此错误的任何建议,我们将不胜感激。

  • Android主题有什么不同。AppCompat和Base。主题AppCompat?我们什么时候应该使用基本主题?