片段中的 getDelegate() 方法?

getDelegate() method inside a fragment?

我想在 android 片段中开启夜间模式。

代码在 activity getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);

中运行良好

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

这个问题的解决方法是什么?

是否有任何其他方法可以在片段中打开夜间模式?

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

以上代码刷新片段和片段以及父片段activity

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

您也可以像这样使用 kotlin 在片段中启动它:

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

}

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

切换模式