即使在Android Q中启用了夜间模式,如何在应用程序中禁用夜间模式?

问题描述

我想在我的应用程序(Android Q)中禁用暗模式。.我厌倦了许多无法解决此问题的方法。您能为此提出一个完美的解决方案吗?

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);

getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO); 

解决方法

将以下行添加到样式xml中。这将删除强制的深色选项

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

也许您可以使用onCreate中的行在整个应用程序中将其禁用

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

或仅针对单个活动:

getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);

之后,您将需要recreate()才能再次使用它。