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(); } }
frangment 展示 隐藏 切换
最新推荐文章于 2020-06-20 16:48:36 发布