在android中从片段到片段管理工具栏的导航和后退按钮 [英] Manage toolbar's navigation and back button from fragment to fragment in android

查看:38
本文介绍了在android中从片段到片段管理工具栏的导航和后退按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

All of my fragments are controlled through ActionBarActivity (mainActivity), inside mainActivity a DrawerLayout is implemented and all the child fragments are pushed through drawerLayout's list item click. The problem that I'm facing is after pushing a fragment through drawerLayout I want to change the drawer icon into back icon of ToolBar so that user can navigate to previous fragment and to handle the callback of android.R.id.home either inside the same fragment or inside the mainActivity.

推荐答案

您已经将 Fragment 添加到后台堆栈并像这样在片段管理器中添加 listener

You have add Fragment to back stack and add listener in fragment manager like this

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);
                        }
                    });
                }
            }
        });

这篇关于在android中从片段到片段管理工具栏的导航和后退按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆