【发布时间】:2021-02-11 06:17:31
【问题描述】:
我在活动的 onCreate 中设置夜间模式。因此,应用程序中的每一个活动都会变成夜间模式,并且之前的所有活动都会重新创建。但我只需要那个特定的活动处于夜间模式,而所有其他活动都处于灯光模式。如何做到这一点?下面的代码行我在活动的 oncreate 中使用以设置为夜间模式。
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
【问题讨论】:
-
为什么不在其他所有活动中关闭它?
-
@a_local_nobody 你的意思是在所有其他活动中设置 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) ?
-
是的,我认为没有其他方法可以做到这一点,您可以考虑制作一个基类或其他东西来简化此操作
-
以与当前设置相反的模式调用
setDefaultNightMode会使堆栈上的所有Activities重新创建,这非常低效并且可能导致丢失一些数据(例如滚动位置或EditTexts 中的文本,取决于关于保存实例状态实现)