Как сделать пользовательскую кнопку возврата, чтобы вернуться к определенному месту назначения с помощью контроллера навигации в Android? - PullRequest
0 голосов
/ 06 октября 2019

Мне нужно сделать собственное поведение, когда пользователь нажимает кнопку «Назад», тогда он автоматически перейдет к определенному месту назначения. На самом деле я прочитал Обработка кнопки возврата в компоненте навигации Android

, но я не понимаю, как использовать эту пользовательскую кнопку возврата code.it мне странно.

Я пытался использовать этот код ниже

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        fragmentView = inflater.inflate(R.layout.fragment_search_setting, container, false)

        // set custom back button
        val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {

            // navigate to certain destination
            Navigation.findNavController(fragmentView).popBackStack(R.id.destination_create_event, false)


        }


        return fragmentView
    }

, но я получаю ошибку несоответствия типов, как это enter image description here

1 Ответ

0 голосов
/ 06 октября 2019

Вы должны создать новый экземпляр абстрактного класса OnBackPressedCallback и реализовать его абстрактный метод.

Надеюсь, это поможет вам:

        val callback = requireActivity().onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true){
        override fun handleOnBackPressed() {
                        Navigation.findNavController(fragmentView).popBackStack(R.id.destination_create_event, false)
        }


    })

    // The callback can be enabled or disabled here or in the lambda

}
...