Jetpack导航到具有TabLayout和ViewPager的PreferenceFragmentCompat

时间:2019-01-08 19:32:28

标签: android-viewpager android-preferences android-jetpack android-architecture-navigation

我正在使用所有新的Jetpack技术创建一个新的应用程序。由于我的应用程序具有相同数据的两个同级视图,因此我使用操作栏选项卡(带有ViewPager)使用向导“ Tabbed Activity”创建了我的应用程序。

我想使用Jetpack导航进行导航,但无法使其与选项卡式活动一起使用。在尝试寻找有关该主题的任何内容大约一周后,我发现的只是几篇这样的帖子:

Android Jetpack Navigation with ViewPager and TabLayout

这太少了,不能继续下去,因此我将其放在一边,并尝试使用PreferenceFragmentCompat实现“设置”菜单。

同样,我从菜单上找不到如何将设置作为PreferenceFragmentCompat加载的任何信息。

我已遵循PreferenceScreen的文档:https://developer.android.com/guide/topics/ui/settings/

<?xml version="1.0" encoding="utf-8"?>

<!--File: res/xml/fragment_settings.xml-->

<androidx.preference.PreferenceScreen
        xmlns:app="http://schemas.android.com/apk/res-auto">

    <SwitchPreferenceCompat
            app:key="notifications"
            app:title="Enable message notifications"/>

    <Preference
            app:key="feedback"
            app:title="Send feedback"
            app:summary="Report technical issues or suggest new features"/>

</androidx.preference.PreferenceScreen>

我还创建了:

class SettingsFragment : PreferenceFragmentCompat() {
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        setPreferencesFromResource(fragment_settings, rootKey)
    }
}

但是我不知道如何将其连接到菜单:

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    val id = item.itemId

    if (id == R.id.action_settings) {
        return true
    }

    return super.onOptionsItemSelected(item)
}

我看到了一些将设置作为“活动”加载的示例,但是鉴于较新的Jetpack导航需要单个“活动”,因此我建议使用“片段”来实现。

这可能吗?有人知道一个例子吗?我讨厌再花一周的时间才发现不可能,所以只知道我走错了方向会有所帮助。

谢谢。

0 个答案:

没有答案