我目前正在将应用程序迁移到androidX和新的导航组件。我的应用程序具有彼此嵌套的不同设置屏幕。在androidX之前,PreferenceScreen
它们彼此嵌套。现在,这被处理为:
因此,在XML中,我们PreferenceFragmentCompat
通过单击该首选项为要显示的类提供一个绝对的类名。片段事务必须由保存片段的Activity来实现。我很乐意这样做,NavControler
但这是我的问题:
override fun onPreferenceStartFragment(caller: PreferenceFragmentCompat, pref: Preference): Boolean { val nav = Navigation.findNavController(this, R.id.nav_host_fragment) nav.navigate() // Only int IDs can be passed here return true }
有什么办法可以给pref
我通过此回调获得的引用ID,以便我可以使用来处理片段事务NavControler
?还是我在这里使事情复杂化而错过了什么?