Реализация пользовательской обратной навигации в Android - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь реализовать пользовательскую обратную навигацию в моем фрагменте на основе документации здесь

Но когда я пытаюсь заменить бит "// Обработка события кнопки назад" моимКод кнопки назад, мой IDE выдает сообщение об ошибке «Требуется: OnBackPressedCallback found () -> OnBackPressedCallback»

Я использую appcompat: 1.0.2.и у меня есть core-ktx: 1.0.2 '.

реализация' androidx.appcompat: appcompat: 1.0.2 '

реализация' androidx.core: core-ktx: 1.0.2 '

Вот как я пытаюсь реализовать onBackPressedDispatcher

val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
        patientsActivity.moveToLoginScreen(true) // <-- thing I want to happen when the back button is pressed
    }

Чего мне здесь не хватает?Как мне реализовать пользовательскую обратную навигацию?

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Проблема с кодом не в файлах Gradle, а в синтаксисе.Документация не предоставляет правильный код kotlin, который соответствует указанному java-коду.

Вот лучший способ создания объекта абстрактного класса - OnBackPressedCallback

val callback = requireActivity().onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) {
    override fun handleOnBackPressed() {
        patientsActivity.moveToLoginScreen(true)
    }
})

supportизменение в документации здесь: https://issuetracker.google.com/issues/135469965

0 голосов
/ 18 июня 2019

OnBackPressedDispatcher является частью новой зависимости androidx.activity.Лучший способ получить доступ к новой библиотеке - обновить вашу версию фрагментов:

implementation "androidx.fragment:fragment-ktx:1.1.0-beta01"

Используя артефакт fragment-ktx, вы также получите переходную зависимость от activity-ktx, чтоимеет расширение Kotlin, используемое в документации.

...