Fragment加RadioGroup show和hide

来源:互联网 发布:广西广电网络宽带价钱 编辑:程序博客网 时间:2024/06/05 19:49
public class MainActivity extends AppCompatActivity {    private FragmentManager fragmentManager;    private FrameLayout fl;    private com.a1511j.day03_fragmentshow_hide.Fragment.f2 f2;    private com.a1511j.day03_fragmentshow_hide.Fragment.f1 f1;    private com.a1511j.day03_fragmentshow_hide.Fragment.f3 f3;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取管理者        fragmentManager = getSupportFragmentManager();        //初始化组件        fl = (FrameLayout) findViewById(R.id.fl);        RadioGroup rg= (RadioGroup) findViewById(R.id.rg);        //将所有Fragment添加到占位布局        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();         //实例化第一个Frangment        f1 = new f1();        fragmentTransaction.add(R.id.fl, f1).commit();        //RadioGroupd点击监听        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {                //隐藏所有Fragment                hidefragment();                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();                switch (i){                    case R.id.ra1:                        //展示第一个                        fragmentTransaction.show(f1).commit();                        break;                    case R.id.ra2:                        //展示第二个                        if(f2==null){                            f2=new f2();                            fragmentTransaction.add(R.id.fl,f2).commit();                        }else{                            fragmentTransaction.show(f2).commit();                        }                        break;                    case R.id.ra3:                        //展示第三个                        if(f3==null){                            f3=new f3();                            fragmentTransaction.add(R.id.fl,f3).commit();                        }else{                            fragmentTransaction.show(f3).commit();                        }                        break;                }            }        });    }    private void hidefragment() {        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();        //如果Fragment不为空并且已经添加,就隐藏        if(f1!=null&&f1.isAdded()){           fragmentTransaction.hide(f1);        }        if(f2!=null&&f2.isAdded()){            fragmentTransaction.hide(f2);        }        if(f3!=null&&f3.isAdded()){            fragmentTransaction.hide(f3);        }        //提交        fragmentTransaction.commit();    }}