Fragment切换(show() and hide())

来源:互联网 发布:python ftp 传输模式 编辑:程序博客网 时间:2024/05/22 01:39
public class MainActivity extends FragmentActivity {    private FragmentManager manager;    private Frag1 f1;    private Frag2 f2;    private Frag3 f3;    private RadioGroup rg;    private DrawerLayout dl;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取控件        rg = (RadioGroup) findViewById(R.id.rg);        dl = (DrawerLayout) findViewById(R.id.drawerLayout);        //获取管理者        manager = getSupportFragmentManager();        //获取Fragment的实例        f1 = new Frag1();        f2 = new Frag2();        f3 = new Frag3();        /*//调用隐藏Fragemn的方法        init();*/        //开启一个事务        FragmentTransaction transaction = manager.beginTransaction();        //显示当前的Fragment并提交        transaction.add(R.id.fl, f1).show(f1).commit();        //RadioGroup的点击事件        rg.setOnCheckedChangeListener(new MyRadioGroup());        dl.addDrawerListener(new MyDrawerListener());    }    //隐藏所有的Fragment方法    public void init() {        //隐藏所有Fragment并提交        manager.beginTransaction().hide(f1).hide(f2).hide(f3).commit();    }    //RadioGroup的点击事件的实现类    private class MyRadioGroup implements RadioGroup.OnCheckedChangeListener {        @Override        public void onCheckedChanged(RadioGroup radioGroup, int i) {            switch (i) {                case R.id.rb1:                    //调用隐藏Fragmenty的方法                    init();                    //开启一个事务并显示提交                    manager.beginTransaction().show(f1).commit();                    break;                case R.id.rb2:                    //调用隐藏Fragmenty的方法                    init();                    //判断当前Fragment是否被Add过                    if (!f2.isAdded()) {                        //开启一个事务添加一个Frangment显示并提交                        manager.beginTransaction().add(R.id.fl, f2).show(f2).commit();                    } else {                        //开启一个事务并显示提交                        manager.beginTransaction().show(f2).commit();                    }                    break;                case R.id.rb3:                    //调用隐藏Fragmenty的方法                    init();                    //判断当前Fragment是否被Add过                    if (!f3.isAdded()) {                        //开启一个事务添加一个Frangment显示并提交                        manager.beginTransaction().add(R.id.fl, f3).show(f3).commit();                    } else {                        //开启一个事务并显示提交                        manager.beginTransaction().show(f3).commit();                    }                    break;            }        }    }    }
原创粉丝点击