在安卓中从一个片段到另一个片段时,管理工具栏的导航和返回按钮

5
所有的片段都通过ActionBarActivity (mainActivity)进行控制,在mainActivity中实现了DrawerLayout,所有子片段都是通过drawerLayout的列表项单击推送的。我面临的问题是,在通过drawerLayout推送片段后,我想将抽屉图标更改为ToolBar的返回图标,以便用户可以导航到先前的片段,并处理android.R.id.home的回调,无论是在同一片段内还是在mainActivity内部。
1个回答

12
您已将Fragment添加到后退栈,并在片段管理器中添加了监听器,代码如下。
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);
                        }
                    });
                }
            }
        });

1
我找了很久!!!非常感谢!!! - Максим Фомичёв

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接