3

我想在 android Fragment 中打开夜间模式。

代码在活动中运行良好getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);

但是我们不能在片段中使用相同的代码

解决方案是什么?

有没有其他方法可以打开片段内的夜间模式?

片段中的错误

编码: ((AppCompatActivity)getActivity()).getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);

上面的代码刷新了fragment和fragment以及父activity

4

2 回答 2

5

((AppCompatActivity)getActivity()).getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);

于 2020-05-08T13:09:27.363 回答
0

您也可以使用 kotlin 在片段中启动它,如下所示:

 override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
   ....
(activity as AppCompatActivity?)!!.delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_NO
.....

}

通常您将值存储在共享首选项中,然后从 ui 事件切换模式

于 2022-02-04T05:32:48.950 回答