frangment 展示 隐藏 切换

来源:互联网 发布:java小项目开发 编辑:程序博客网 时间:2024/06/09 17:51
package com.example.day2franmentdeshowhehide;import android.support.annotation.IdRes;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.RadioGroup;import com.example.day2franmentdeshowhehide.Frang.Frang1;import com.example.day2franmentdeshowhehide.Frang.Frang2;import com.example.day2franmentdeshowhehide.Frang.Frang3;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private FragmentManager supportFragmentManager;    private FragmentTransaction fragmentTransaction;    private List<Fragment> list = new ArrayList<Fragment>();    private RadioGroup rg;    private Frang1 f1;    private Frang2 f2;    private Frang3 f3;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取控件        rg = (RadioGroup) findViewById(R.id.rg);        //获取管理者        supportFragmentManager = getSupportFragmentManager();        //开启事务        fragmentTransaction = supportFragmentManager.beginTransaction();        //实例化碎片        f1 = new Frang1();        //默认一个页面        fragmentTransaction.add(R.id.fl, f1).commit();        //获取点击事件        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {                //隐藏所用的Frangment                hideFrag();                //在获取一个开启事务                FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();                switch (i) {                    case R.id.bu:                        fragmentTransaction.show(f1).commit();                        break;                    case R.id.bu1:                        //如果等于空                        if (f2 == null) {                            f2 = new Frang2();//实例化一个Frang2                            fragmentTransaction.add(R.id.fl, f2).commit();//添加布局里                        } else {                            fragmentTransaction.show(f2).commit();//有的话就show                        }                        break;                    case R.id.bu2:                        if (f3 == null) {                            f3 = new Frang3();                            fragmentTransaction.add(R.id.fl, f3).commit();                        } else {                            fragmentTransaction.show(f3).commit();                        }                        break;                }            }        });    }    //隐藏所用的Frangment    private void hideFrag() {        //在获取一个开启事务        FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();        //不等于空或者是否添加        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();    }}
原创粉丝点击