代码之家  ›  专栏  ›  技术社区  ›  Alexa289

如何使用Android中的导航控制器定制返回按钮返回某个目的地?

  •  0
  • Alexa289  · 技术社区  · 6 年前

    我需要做一个自定义的行为,当用户按下后退按钮,然后用户将去特定的目的地编程。我真的读过这个 Handling back button in Android Navigation Component

    但我不明白如何使用自定义后退按钮代码我觉得很奇怪。

    我试过使用下面的代码

    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

    0 回复  |  直到 6 年前
        1
  •  2
  •   ahooee    6 年前

    必须创建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
    
    }