如何使用导航组件导航回上一个片段

时间:2021-02-02 18:08:53

标签: android android-fragments bottomnavigationview

我在我的应用程序中使用导航组件。我的应用程序中有三个片段 HomeCartCake。我想在操作栏中按后退箭头导航到所需的片段。当我点击后退箭头时,它不会切换到所需的片段,而不是返回到 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);

1 个答案:

答案 0 :(得分:-1)

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

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