show hide 显示隐藏切换Fragment

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhang823253467/article/details/78902101

show hide

public class MainActivity extends FragmentActivity implements OnCheckedChangeListener {
	private RadioGroup group;
	private FragmentManager manager;
	private Fragment01 fragment01;
	private Fragment02 fragment02;
	private Fragment03 fragment03;
	private Fragment04 fragment04;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//去掉标题栏
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		
		group = (RadioGroup) findViewById(R.id.radio_group);
		
		manager = getSupportFragmentManager();
		
		fragment01 = new Fragment01();
		
		//添加这个方法在使用的时候同一个fragment只能添加一次,否则会报错...结合着show和hide方法去使用
		manager.beginTransaction().add(R.id.ralative, fragment01).commit();
		
		//给group设置选中改变的监听事件
		group.setOnCheckedChangeListener(this);
	}
	@Override
	public void onCheckedChanged(RadioGroup group, int checkedId) {
		FragmentTransaction transaction = manager.beginTransaction();
		
		//在刚开始点击的时候,先判断fragment是否为空,,,如果不为空先让他隐藏
		if (fragment01 != null) {
			transaction.hide(fragment01);
		}
		if (fragment02 != null) {
			transaction.hide(fragment02);
		}
		if (fragment03 != null) {
			transaction.hide(fragment03);
		}
		if (fragment04 != null) {
			transaction.hide(fragment04);
		}
		
		// TODO Auto-generated method stub
		switch (checkedId) {//点击选中某个button的时候要么去显示要么去添加,,,没有去添加,,,有则显示出来
		case R.id.radio_01:
			//manager.beginTransaction().replace(arg0, arg1).commit()
			if (fragment01 == null) {
				fragment01 = new Fragment01();
				transaction.add(R.id.ralative, fragment01);
			}else {
				transaction.show(fragment01);
			}
			break;
		case R.id.radio_02:
			if (fragment02 == null) {
				fragment02 = new Fragment02();
				transaction.add(R.id.ralative, fragment02);
			}else {
				transaction.show(fragment02);
			}
			break;
		case R.id.radio_03:
			if (fragment03 == null) {
				fragment03 = new Fragment03();
				transaction.add(R.id.ralative, fragment03);
			}else {
				transaction.show(fragment03);
			}
			break;
		case R.id.radio_04:
			if (fragment04 == null) {
				fragment04 = new Fragment04();
				transaction.add(R.id.ralative, fragment04);
			}else {
				transaction.show(fragment04);
			}
			break;

		default:
			break;
		}
		
		//提交
		transaction.commit();
	}

}


展开阅读全文

没有更多推荐了,返回首页