由于MIUI11/12使用自己的自定义暗模式实现,因此使用以下代码会导致ClassCastException和活动生命周期异常,因为DefaultNightMode和LocalNightMode始终未指定,即-100而不是0或1。
如果有人已经为小米设备构建了一个专门针对MIUI 11/12的解决方案,请在这个问题上帮助我。
使用的代码:
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
this.recreate();
导致的错误:
2020-10-25 07:04:43.626 9167-9167/com.xxxx.xxxxxx E/ActivityInjector: get life cycle exception
java.lang.ClassCastException: android.os.BinderProxy cannot be cast to android.app.servertransaction.ClientTransaction
发布于 2020-10-31 18:56:25
我自己解决的。摆弄了一个星期后,我做了。
下面是如何实现的:
--而不是为每个活动设置android:forceDarkAllowed="false“。
--只需转到values.xml并将其放入您的AppTheme中
<item name="android:forceDarkAllowed">false</item>
它将要求您创建一个valuesv29.xml。创建它,并从所有活动中删除forceDarkAllowed="false“。
欢迎。:)
发布于 2021-07-14 11:06:47
同样在jetpack compose中,只需将这一行添加到theme.xml
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
有了这个目标api,我就能很好地工作
https://stackoverflow.com/questions/64565156
复制相似问题