Предиктивный жест назад в Android – как заставить его работать?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Предиктивный жест назад в Android – как заставить его работать?

Сообщение Anonymous »

Я пытаюсь протестировать функцию «прогнозируемого жеста назад», реализованную в Android 13.
Чтобы сделать это, сначала я перенес свое приложение на API AndroidX (поэтому избавился от всех случаев использования onBackPressed), затем включил эту функцию в манифесте и попробовал на Pixel 4a с установленным Android 13 — не сработало.
Провел небольшое расследование и, наконец, добрался до работать, удалив все обратные вызовы onBackPressed в onBackPressedDispatcher.
Мой вопрос: как заставить эту функцию работать, зарегистрировав обратные вызовы onBackPressed в приложении?
Обновление:
abstract class BaseFragment : Fragment() {

private val onBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
onBackPressed()
}
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, onBackPressedCallback)
}

// If there are no more items in backstack, `navController.navigateUp()`
// closes the app, which is desired behavior. It's triggered via callback though,
// so, as I understand, that's the reason predictive back gesture doesn't work.
protected open fun onBackPressed() {
if (!navigateUp()) {
onBackPressedCallback.isEnabled = false
requireActivity().onBackPressedDispatcher.onBackPressed()
}
}

// I can override this method in places, where I need to use custom backPressed logic
protected open fun navigateUp(): Boolean = navController.navigateUp()

}


Подробнее здесь: https://stackoverflow.com/questions/736 ... it-to-work
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»