如何让fragment能完全覆盖活动的View?

如题,我想实现的是用fragment实现侧滑菜单按钮的页面切换,但是我的fragment无法覆盖完全覆盖mainactivity的布局。如图mainactivity的两个button仍然显示
图片说明

图片说明

下面是我实现fragment切换的代码

//Fragment初始化
    private void initFragment() {
        fragment0 = new Blank_Fragment();
        fragment1 = new AboutUs_Fragment();
        fragment2 = new Help_Fragment();
        fragments = new Fragment[]{fragment0,fragment1,fragment2};
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.activity_main,fragment0);
        transaction.addToBackStack(null);
        transaction.commit();//    使transaction生效
        navView = (NavigationView) findViewById(R.id.nav_view);
        navView.setNavigationItemSelectedListener(changeFragment);
    }


    //判断选择的菜单
    private NavigationView.OnNavigationItemSelectedListener changeFragment= new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId())
            {
                case R.id.nav_AboutUs:
                    if(lastfragment!=1) {
                        switchFragment(lastfragment,1);
                        lastfragment=1;
                        mDrawerLayout.closeDrawers();
                    }
                    return false; //点击后不会默认选中了
                case R.id.nav_Help:
                    if(lastfragment!=2){
                        switchFragment(lastfragment,2);
                        lastfragment=2;
                        mDrawerLayout.closeDrawers();
                    }
                    return false;
            }
            return false;
        }
    };

    //切换Fragment
    private void switchFragment(int lastfragment,int index)
    {
        FragmentTransaction transaction =getSupportFragmentManager().beginTransaction();
        transaction.hide(fragments[lastfragment]);//隐藏上个Fragment
        if(!fragments[index].isAdded()){
            transaction.add(R.id.activity_main,fragments[index]);
        }
        transaction.show(fragments[index]).commitAllowingStateLoss();
    }


下面是fragment的布局文件
图片说明

2个回答

已解决,在XML文件中将background属性设置删除,在声明实例的时候调用setBackgroundResource方法,button在切换的时候不会显示了。很偶然尝试出来的,不知道有没有人知道是为什么??

你的Fragment没背景,当然能看到后面了,如果没有点击事件还能点到后面呢,不信你试试

weixin_44269571
weixin_44269571 我的fragment设置了background属性呀
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!