底部导航栏在打开另一个片段时停止运行片段

时间:2019-11-04 13:13:37

标签: java android

因此,我不知道如何执行此操作,甚至不知道从哪里开始,因此,如果有人有足够的耐心来解释如何执行此操作,我将不胜感激。 我已经在Google上查询过,但是发现的内容太难理解了(我很确定可以很容易地做到这一点。

我有4个片段(底部导航栏上的4个选项卡),并且我希望当时仅运行1个。 现在,我很确定应该使用FragmentManager,但我真的不知道如何开始在程序中实现。

我是否必须在mainActivity中编写所有FragmentTransaction代码?然后如何保持状态?是否有示例代码?

免责声明:在android Studio环境中,我是一个菜鸟,我也是一名学生,几乎在学校做任何事情。

1 个答案:

答案 0 :(得分:3)

您可以在代码中尝试。在onNavigationItemSelected

@Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        Fragment fragment = null;

        switch (item.getItemId()) {
            case R.id.navigation_home:
                fragment = new HomeFragment();
                break;

            case R.id.navigation_dashboard:
                fragment = new DashboardFragment();
                break;

            case R.id.navigation_notifications:
                fragment = new NotificationsFragment();
                break;

            case R.id.navigation_profile:
                fragment = new ProfileFragment();
                break;
        }

        return loadFragment(fragment);
    }

    private boolean loadFragment(Fragment fragment) {
        //switching fragment
        if (fragment != null) {
            getSupportFragmentManager()
                    .beginTransaction()
                    .replace(R.id.fragment_container, fragment)
                    .commit();
            return true;
        }
        return false;
    }

希望这对您有帮助!

谢谢。