首页 > 解决方案 > 使用底部导航栏从片段开始活动

问题描述

在我的应用程序中,我有 5 个片段。为了在它们之间切换,我使用底部导航栏。

另外,我需要从我的片段中打开活动,但是当我打开新活动时,它会在每个片段中打开。(我的意思是碎片,在每种情况下)

如何在一种情况下使活动开放?

我的代码:

 private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
        = new BottomNavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        Fragment fragment = null;
        switch (item.getItemId()) {
            case R.id.nav_home:
                fragmentManager.beginTransaction().hide(active).show(fragment1).commit();
                active = fragment1;
                return true;
            case R.id.nav_bookmark:
                fragmentManager.beginTransaction().hide(active).show(fragment2).commit();
                active = fragment2;
                return true;
            case R.id.nav_blog:
                fragmentManager.beginTransaction().hide(active).show(fragment3).commit();
                active = fragment3;
                return true;
            case R.id.nav_notification:
                fragmentManager.beginTransaction().hide(active).show(fragment4).commit();
                active = fragment4;
                return true;
            case R.id.nav_account:
                fragmentManager.beginTransaction().hide(active).show(fragment5).commit();
                active = fragment5;
                return true;
        }
      return false;
    }
};

谢谢!

标签: androidandroid-fragmentsandroid-activitybottomnavigationview

解决方案


这显然是 FragmentManager 问题 - 而不是 Activity 问题。
而是.hide().show()使用.replace().
有关参考,请参阅文档


推荐阅读