android 框架布局不断堆叠,如何刷新它们

xvw2m8pv  于 2023-03-21  发布在  Android
关注(0)|答案(1)|浏览(112)

在FrameLayout中的DrawerLayout内部,当我单击Navigation Menu的项目时,它们不断碰撞并相互堆叠,那么我该怎么办?
这是我用于在onNavigationItemSelected中加载片段的Java代码
这里的框架布局称为fragmentContainer。

public boolean onNavigationItemSelected(@NonNull MenuItem item) {

        switch (item.getItemId()){

            case R.id.nav_profile:
                loadFragment(new ProfileFragment());
                
                break;

           case R.id.nav_logout:
                logoutPrompt();
                break;

            default:
                loadFragment(new HomeFragment());
                break;

        }
            drawerLayout.closeDrawer(GravityCompat.START);

        return true;
    }


    private void loadFragment(Fragment fragment) {

        FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();

        transaction.add(R.id.fragment_container,fragment);
        transaction.commit();

    }

欢迎提出任何建议。
我期待的fragmentContainer(框架布局)不会保持堆叠,我第一次注意到这一点时,回收视图之间的空间,我可以查看它下面的相同信息的另一个回收视图和滚动.

pvcm50d1

pvcm50d11#

在您的loadFragment()中,您要在现有Fragment的基础上添加一个新Fragment:

transaction.add(R.id.fragment_container,fragment);

如果您不希望堆叠片段,则应改用replace()

transaction.replace(R.id.fragment_container,fragment);

你可以参考官方文件了解更多细节。

相关问题