在 OnePlus phone 和 Android 12 上强制应用小部件的浅色主题
Force app widget's light theme on OnePlus phone with Android 12
我在使用 Android 12(使用 OnePlus 启动器)在 OnePlus 9 phone 上强制主屏幕应用程序小部件的浅色主题时遇到问题。我的小部件的主题继承自 Theme.MaterialComponents.Light
并在 Android 11 及以下时亮起,即使 phone 处于深色模式。
问题出在 Android 12,当 phone 处于深色模式时,小部件的背景总是很暗。当我设置纯白色背景时,它几乎是黑色的。纯红色是深红色,纯绿色是深绿色,等等。看起来系统中的某些东西正在为背景颜色着色。 Theme.Material3.Light
和 @android:style/Theme.DeviceDefault
主题也是如此。
纯 Android 在模拟器中的一切都很好,所以这看起来像是 OnePlus 的问题。任何想法可能是错误的以及如何解决这个问题?
转到您的主题文件并将以下行放入您的应用所使用的样式中。
<item name="android:forceDarkAllowed">false</item>
您可以创建一个扩展 Application() 的应用程序 Class,然后像这样将以下代码放在 OnCreate() 中
class YourApplicationClass : Application(){
override fun onCreate() {
super.onCreate()
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
}
}
然后在你的清单文件中添加这个应用程序class像这样
<application
android:name=".base.YourApplicationClass"
...
/>
我在使用 Android 12(使用 OnePlus 启动器)在 OnePlus 9 phone 上强制主屏幕应用程序小部件的浅色主题时遇到问题。我的小部件的主题继承自 Theme.MaterialComponents.Light
并在 Android 11 及以下时亮起,即使 phone 处于深色模式。
问题出在 Android 12,当 phone 处于深色模式时,小部件的背景总是很暗。当我设置纯白色背景时,它几乎是黑色的。纯红色是深红色,纯绿色是深绿色,等等。看起来系统中的某些东西正在为背景颜色着色。 Theme.Material3.Light
和 @android:style/Theme.DeviceDefault
主题也是如此。
纯 Android 在模拟器中的一切都很好,所以这看起来像是 OnePlus 的问题。任何想法可能是错误的以及如何解决这个问题?
转到您的主题文件并将以下行放入您的应用所使用的样式中。
<item name="android:forceDarkAllowed">false</item>
您可以创建一个扩展 Application() 的应用程序 Class,然后像这样将以下代码放在 OnCreate() 中
class YourApplicationClass : Application(){
override fun onCreate() {
super.onCreate()
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
}
}
然后在你的清单文件中添加这个应用程序class像这样
<application
android:name=".base.YourApplicationClass"
...
/>