【问题标题】:How to disable automatic change of day night theme based on android system settings?如何根据android系统设置禁用日夜主题的自动更改?
【发布时间】:2020-09-24 18:11:22
【问题描述】:

到目前为止,我从 google 了解到,您必须使用 Theme.Appcompat.Daynight 或 Material Daynight 主题才能使您的应用支持暗模式。并且您需要在 valuesvalues-night 目录中使用不同的 styles.xml。 我不愿意让我的应用支持深色主题。但是,当我将 android 系统主题(从通知面板)更改为暗色时,我的应用程序变暗了。 我使用 Theme.Appcompat.Light 作为基本主题,没有为我的应用程序支持暗模式做任何事情,但我的应用程序仍然变暗。我第一次使用cardview,不知道是不是这个原因,因为我是android编程的新手。 您的小小帮助将非常受欢迎。请在此处查看屏幕截图:

System dark mode off

System dark mode on

【问题讨论】:

  • 嗨。你已经检查过这个问题了吗?这可能是重复的。 stackoverflow.com/questions/57175226/…
  • 是的,我明白了,我们的问题几乎相同,但我没有使用 Theme.AppCompat.DayNight 作为应用程序基础主题。那里提供的解决方案 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) - 对我不起作用。 ??????

标签: android android-cardview android-theme android-dark-theme android-darkmode


【解决方案1】:

您可以在所有应用程序中使用它

class AppController: Application() {
   override fun onCreate() {
      super.onCreate()
      AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
   }
}

【讨论】:

    【解决方案2】:

    在 android 10 中,android forse dark to app 以防止这种情况, 将以下内容添加到您的默认主题样式中:

     <item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
    

    【讨论】:

      【解决方案3】:

      在调用 setContentView 之前在 MainActivity 的 onCreate 方法中添加这一行:

      AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多