在 android 中从一个片段到另一个片段管理工具栏的导航和后退按钮

Manage toolbar's navigation and back button from fragment to fragment in android

我所有的片段都是通过ActionBarActivitymainActivity)控制的,在mainActivity里面有一个DrawerLayout实现并通过 drawerLayout 的列表项点击推送所有子片段。我面临的问题是在通过 drawerLayout 推送片段后,我想将抽屉图标更改为 ToolBar 的后退图标,以便用户可以导航到上一个片段并处理 android.R.id.home 的回调在同一片段内或 mainActivity.

您已将 Fragment 添加到返回堆栈并在片段管理器中添加 listener

getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
            @Override
            public void onBackStackChanged() {
                if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
                    getSupportActionBar().setDisplayHomeAsUpEnabled(true); // show back button
                    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            onBackPressed();
                        }
                    });
                } else {
                    //show hamburger
                    getSupportActionBar().setDisplayHomeAsUpEnabled(false);
                    toggle.syncState();
                    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            drawerLayout.openDrawer(GravityCompat.START);
                        }
                    });
                }
            }
        });