fragment切换时,可以点击到之前页面上的按钮

fragment1上面有个按钮,fragment2上是空的,在fragment2页面点击按钮所在部位,就可以点进去,请问怎么修改

 //定义一个选中一个item后的处理
        public void setChioceItem(int index)
        {
                //重置选项+隐藏所有Fragment
                FragmentTransaction transaction = fManager.beginTransaction();  

                clearChioce();
                hideFragments(transaction);
                switch (index) {
                case 0:
                        ceshi_image.setImageResource(R.drawable.ceshitubiao2);  
                        ceshi_text.setTextColor(blue);
                        TextView tv = (TextView) findViewById(R.id.biaoti);
                        tv.setText("题目练习");
                        //course_layout.setBackgroundResource(R.drawable.ic_tabbar_bg_click);
            if (fg1 == null) {  
                // 如果fg1为空,则创建一个并添加到界面上  ic_tabbar_course_pressed
                fg1 = new Fragment1();  
                transaction.add(R.id.content, fg1);  
            } else {  
                // 如果MessageFragment不为空,则直接将它显示出来  
                transaction.show(fg1);  
            }  
            break;  

                case 1:
                        tongzhi_image.setImageResource(R.drawable.tongzhi2);  
                        tongzhi_text.setTextColor(blue);
                        tv = (TextView) findViewById(R.id.biaoti);
                        tv.setText("消息通知");
                        //found_layout.setBackgroundResource(R.drawable.ic_tabbar_bg_click);
            if (fg2 == null) {  
                // 如果fg2为空,则创建一个并添加到界面上  
                fg2 = new Fragment2();  
                transaction.add(R.id.content, fg2);  
            } else {  
                // 如果MessageFragment不为空,则直接将它显示出来  
                transaction.show(fg2);  
            }  
            break;      

                 case 2:
                        wo_image.setImageResource(R.drawable.wotubiao2);  
                        wo_text.setTextColor(blue);
                        //settings_layout.setBackgroundResource(R.drawable.ic_tabbar_bg_click);
                        tv = (TextView) findViewById(R.id.biaoti);
                        tv.setText("我");
            if (fg3 == null) {  
     //            如果fg3为空,则创建一个并添加到界面上  
                fg3 = new Fragment3();  
               transaction.add(R.id.content, fg3);  
            } else {  
                // 如果MessageFragment不为空,则直接将它显示出来  
                transaction.show(fg3);  
            }  
            break;                 
                }
                transaction.commit();
        }

        //隐藏所有的Fragment,避免fragment混乱
        private void hideFragments(FragmentTransaction transaction) {  
        if (fg1 != null) {  
            transaction.hide(fg1);  
        }  
        if (fg2 != null) {  
            transaction.hide(fg2);  
        }  
        if (fg3 != null) {  
            transaction.hide(fg3);  
        }  
    }  

图片说明
图片说明

很简单的问题,你点了按钮show出来的fragment实际上覆盖在前一个上面,R.id.content是FrameLayout。
你只需要在show出来fragment之后,hide原来的就可以了,在同一个transaction里提交一下。

像这种类型的,你可以用viewpager来做

楼主新建fragment的时候忘记把前面的隐藏了,
建议在新建之前都调用一次你的hideFragments方法