结合使用NavController和首选项

时间:2019-07-14 18:53:18

标签: android androidx android-navigation

我当前正在将应用程序迁移到androidX和新的导航组件。我的应用程序具有彼此嵌套的不同设置屏幕。在androidX之前,PreferenceScreen是彼此嵌套的。现在,它的处理方式为:

<Preference
    app:fragment="com.example.SyncFragment"
    .../>

因此,在XML中,我们通过单击该首选项为要显示的PreferenceFragmentCompat给出了一个绝对的类名。片段事务必须由保存片段的Activity来实现。我很乐意通过我的NavControler来做到这一点,但这是我的问题:

override fun onPreferenceStartFragment(caller: PreferenceFragmentCompat, pref: Preference): Boolean {
    val nav = Navigation.findNavController(this, R.id.nav_host_fragment)
    nav.navigate(<Fragment ID>) // Only int IDs can be passed here
    return true
}

有什么办法可以给我通过此回调获得的pref引用一个ID,以便我可以使用NavControler处理片段事务?还是我在这里使事情复杂化而错过了什么?

0 个答案:

没有答案