【问题标题】:How to navigate back to previous fragment using Navigation component如何使用导航组件导航回上一个片段
【发布时间】:2021-02-02 18:08:53
【问题描述】:

我在我的应用程序中使用导航组件。我的应用程序中有三个片段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);

【问题讨论】:

    标签: android android-fragments bottomnavigationview


    【解决方案1】:

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

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

    【讨论】:

    • 我如何在片段中实现这个。
    • 复制粘贴即可
    • 我正在使用这个`@Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { if(item.getItemId() == android.R.id.home){ NavController navController = Navigation.findNavController( getActivity(),R.id.fragment); navController.navigate(R.id.cakeFragment); } 返回 super.onOptionsItemSelected(item); }` 但它没有导航到所需的片段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多