【问题标题】:Change DarkMode Programmatically以编程方式更改 DarkMode
【发布时间】:2020-01-23 13:53:42
【问题描述】:

这是我在 attr_styles.xml 中的样式

<style name="AttrStyles" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="calendarAppointmentView">@style/calendar_appointment_view</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="alertDialogTheme">@style/white_style</item>
</style>

我有 2 个 colors.xml 文件。 1 在 values 中,另一个在 values-night 中。

如果我从手机设置中选择 DarkMode 开启或关闭,它可以工作。 但我想在我的应用程序中有一个 Spinner,有:AUTO、ON、OFF。 如何根据该微调器强制它显示浅色(值)或显示深色(值-夜)?

我尝试在我的 App.kt 类(Application 类)中调用 onCreate() 这个:

    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)

或

    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

但是什么也没发生。我做错了什么?

【问题讨论】:

标签: android view color-scheme android-night-mode android-dark-theme


【解决方案1】:

在搜索您的问题大约 2 分钟后,我遇到了一个类似的问题,几乎有 answer you're looking for。看来你必须使用 setTheme 方法。

【讨论】:

  • 你没有抓住重点。我想要一个 Spinner 来选择并强制我想要的模式。 setTheme 我可以设置为 DayNight,它将采用基于 DarkTheme ON 或 OFF 的模式。好的,如果它关闭,我将主题设置为 android.R.style.theme 。并且开启了灯光模式。但是我怎样才能将主题设置为强制使用 values-night。 AKA force dark mode on ,即使设置是亮的
猜你喜欢
  • 1970-01-01
  • 2019-04-10
  • 2015-08-16
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多