当前位置: 首页 > 知识库问答 >
问题:

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

万俟高峻
2023-03-14

我所有的片段都是通过ActionBarActive(main Active)控制的,在main Active中实现了一个DrawerLayout,所有的子片段都是通过抽屉布局的列表项点击推送的。我面临的问题是,在通过抽屉布局推送一个片段后,我想将抽屉图标更改为ToolBar的后退图标,以便用户可以导航到以前的片段并处理android的回调。id.home在同一个片段中或在主活动中。

共有1个答案

陈实
2023-03-14

您必须像这样添加片段到后台堆栈并在片段管理器中添加侦听器

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);
                        }
                    });
                }
            }
        });
 类似资料:
  • 我的所有片段都是通过ActionBarActivity(mainActivity)控制的,在mainActivity中实现了一个抽屉布局,所有子片段都是通过抽屉布局的列表项点击来推送的。我面临的问题是,在通过抽屉布局推送片段后,我想将抽屉图标更改为工具栏的后图标,以便用户可以导航到前一个片段并处理Android的回调。R、 id.home位于同一片段内或主活动内。 我使用的代码是: MainAct

  • 我试着从一个片段到主要片段。编译器不喜欢我的代码,但我不确定是什么问题。转换片段的最佳实践是什么? //这是我要导航到的主片段的xml 2019-07-12 17:49:45.091 959 4-9594/com.example.cribb E/AndroidRuntime:致命异常:主进程:com.example.cribb,PID:9594 Android.content.res.resour

  • 您好,我已经使用导航组件和导航图从一个片段导航到另一个片段,我想要的是防止onBack完全按下,这样当用户单击onBack时,应用程序将退出。我正在从注册片段导航到主页片段。 这是导航图中的代码 这是我的代码,当点击注册按钮时,在注册片段中导航

  • 这是我完整的logcat: 在Android.support.v4.app.backStackRecord.doaddop(backStackRecord.java:414)在Android.support.v4.app.backStackRecord.replace(backStackRecord.java:449)在Android.support.v4.app.backStackRecord.

  • 我正在尝试实现一个简单的设计。一个带有宿主片段的活动。 问题是,其中一个目的地有一个底部导航栏。 经过一点研究,我发现最好的做法是有一个带有宿主片段的单一活动。 在我的特殊情况下,底部导航栏不应该在登录和注册片段中可见,只是隐藏它对我来说似乎不合适。 我设法创建了一个带有底部导航条的活动,将主片段连接到frag 1、frag 2或frag 3,但现在我需要添加登录片段和注册片段,我不确定如何处理导

  • 我需要一些暑期项目的帮助 这是我的事件片段 这是我的MyList片段 我正在使用RecyclerViewCardView显示事件。其想法是,用户可以单击每张卡片右侧的大加号,卡片将显示在MyList片段中。我想问一下,是否可以将一张卡直接从一个片段转移到另一个片段?而且,这两个片段都包含在同一个活动中,这使得它有点棘手(我还没有找到任何可用的解决方案)。 如果不可能,另一种方法是将CardView