首页 > 解决方案 > 如何使用导航组件导航回上一个片段

问题描述

我在我的应用程序中使用导航组件。我的应用程序中有三个片段HomeCart并且Cake. 我想在操作栏中按后退箭头导航到所需的片段。当我单击后退箭头时,它不会切换到所需的片段而不是返回到Home片段。

下面是我的代码:

CartFragment.java

OnBackPressedCallback back = new OnBackPressedCallback(true) {
        @Override
        public void handleOnBackPressed() {
            NavController navController = Navigation.findNavController(getActivity(),R.id.fragment);
            navController.navigate(R.id.cakeFragment);
        }
    };
    requireActivity().getOnBackPressedDispatcher().addCallback(getActivity(),back);

标签: androidandroid-fragmentsbottomnavigationview

解决方案


要拦截后退按钮单击,您需要覆盖onOptionsItemSelected

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    when (item.itemId) {
        android.R.id.home -> {
            handleBackPress()
            return true
        }
    }
    return super.onOptionsItemSelected(item)
}

推荐阅读