Переход на Jetpack для PreferenceFragmentCompat с TabLayout и ViewPager - PullRequest
0 голосов
/ 08 января 2019

Я создаю новое приложение, используя все новые методы Jetpack. Я создал свое приложение с помощью мастера «Действия с вкладками» с помощью вкладок панели действий (с ViewPager), поскольку у моего приложения есть два родственных представления с одинаковыми данными.

Я хотел использовать Jetpack Navigation для навигации, но не смог настроить его на работу с вкладками. Приблизительно после недели попыток найти что-то по теме, я нашел всего несколько сообщений вроде этого:

Android Jetpack Navigation с ViewPager и 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 Navigation хочет одно действие.

Возможно ли это? Кто-нибудь знает пример? Я ненавижу тратить еще одну неделю, только чтобы обнаружить, что это невозможно, поэтому было бы полезно знать, что я иду в неправильном направлении.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...