1.layout布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.taoge.newfragmentswitch.MainActivity">
<RadioGroup
android:id="@+id/radio_group"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:layout_height="?android:attr/actionBarSize">
<RadioButton
android:id="@+id/btn_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:button="@null"
android:layout_weight="1"
android:background="@drawable/one"/>
<RadioButton
android:id="@+id/btn_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:button="@null"
android:layout_weight="1"
android:background="@drawable/two"/>
<RadioButton
android:id="@+id/btn_3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:button="@null"
android:layout_weight="1"
android:background="@drawable/three"/>
<RadioButton
android:id="@+id/btn_4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:button="@null"
android:layout_weight="1"
android:background="@drawable/four"/>
<RadioButton
android:id="@+id/btn_5"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:button="@null"
android:layout_weight="1"
android:background="@drawable/five"/>
</RadioGroup>
<FrameLayout
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/radio_group">
</FrameLayout>
</RelativeLayout>
2.java代码
public class MainActivity extends Activity {
private Fragment_One fragment1 =null;
private Fragment_Two fragment2 =null;
private Fragment_Three fragment3 =null;
private Fragment_Four fragment4 =null;
private Fragment_Five fragment5 =null;
private FragmentManager fm =null;
private RadioGroup group;
private RadioButton radioBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fm =getFragmentManager(); //获得FragmentManager的对象
init();
}
private void init(){
group =(RadioGroup)findViewById(R.id.radio_group);
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
//获得FragmentTransaction的对象
FragmentTransaction ft =fm.beginTransaction();
//隐藏所有的Fragment
hideAllFragment(ft);
//显示与当前对应button的fragment
switch (checkedId){
case R.id.btn_1:
//如果当前的Fragment没有被构造,则构造之;并把它放在FragmentTransaction里面
if (null == fragment1){
fragment1 =new Fragment_One();
ft.add(R.id.frame_layout,fragment1);
}else {
//如果当前的已经被构造,则显示出来
ft.show(fragment1);
}
break;
case R.id.btn_2:
if (null ==fragment2){
fragment2 =new Fragment_Two();
ft.add(R.id.frame_layout,fragment2);
}else {
ft.show(fragment2);
}
break;
case R.id.btn_3:
if (null == fragment3){
fragment3 =new Fragment_Three();
ft.add(R.id.frame_layout,fragment3);
}else {
ft.show(fragment3);
}
break;
case R.id.btn_4:
if (null == fragment4){
fragment4 =new Fragment_Four();
ft.add(R.id.frame_layout,fragment4);
}else {
ft.show(fragment4);
}
break;
case R.id.btn_5:
if (null == fragment5){
fragment5 =new Fragment_Five();
ft.add(R.id.frame_layout,fragment5);
}else {
ft.show(fragment5);
}
break;
}
ft.commit(); //提交
}
});
radioBtn =(RadioButton)findViewById(R.id.btn_1);
radioBtn.setChecked(true);
}
private void hideAllFragment(FragmentTransaction ft){
if (null != fragment1){ft.hide(fragment1);}
if (null !=fragment2){ft.hide(fragment2);}
if (null != fragment3){ft.hide(fragment3);}
if (null !=fragment4){ft.hide(fragment4);}
if (null != fragment5){ft.hide(fragment5);}
}
}