0:首先创建3个 Fragment,这3个Fragment 必须是v4包里面的Fragment,
1:然后在MainActivity的布局里面添加一个FrameLayout和一个RadioGroup的布局,注意这个RadioGroup的布局一定要设置orientation 为horization
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <FrameLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:id="@+id/framelayout"></FrameLayout> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/radioGroup"> <RadioButton android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="a" android:textSize="35sp" android:id="@+id/radiobutton_a"/> <RadioButton android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="b" android:textSize="35sp" android:id="@+id/radiobutton_b"/> <RadioButton android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="c" android:textSize="35sp" android:id="@+id/radiobutton_c"/> </RadioGroup> </LinearLayout>
2:在MainActivity 里面执行
package tech.androidstudio.viewpagerdemo; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.RadioGroup; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener { private BlankFragment mBlankFragment; private SecondFragmentT mSecnodFragment; private ThridFragmentT mThirdFragment; private RadioGroup mRadioGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建Fragment mBlankFragment = new BlankFragment(); mSecnodFragment = new SecondFragmentT(); mThirdFragment = new ThridFragmentT(); //获取支持包里面的FragmentManager,然后获取事务transaction FragmentManager supportFragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); //将三个 Fragment 都添加到事务里面来,同时将后两个隐藏 fragmentTransaction.add(R.id.framelayout, mBlankFragment); fragmentTransaction.add(R.id.framelayout,mSecnodFragment); fragmentTransaction.add(R.id.framelayout,mThirdFragment); fragmentTransaction.hide(mSecnodFragment); fragmentTransaction.hide(mThirdFragment); //提交事务 fragmentTransaction.commit(); //实现 RadioGroup 来控制FragmentManager的显示 ,设置监听器 mRadioGroup = (RadioGroup) findViewById(R.id.radioGroup); mRadioGroup.check(0); mRadioGroup.setOnCheckedChangeListener(this); } @Override public void onCheckedChanged(RadioGroup group, int checkedId) { //注意在回调方法里面 也要 获取FragmentManger 和事务transaction, FragmentManager supportFragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); //判断checkedId 是要通过RadioButton 来判断的,如果是自己在代码里面创建的 RadioButton的话 可以设置id, //例如设置0,1,2. 而这里是通过布局来创建的 ,所以 这里的 id 就使用布局里面的id就好了 switch (checkedId){ case R.id.radiobutton_a: Toast.makeText(this,"0",Toast.LENGTH_LONG).show(); fragmentTransaction.show(mBlankFragment); fragmentTransaction.hide(mSecnodFragment); fragmentTransaction.hide(mThirdFragment); break; case R.id.radiobutton_b: Toast.makeText(this,"1",Toast.LENGTH_LONG).show(); fragmentTransaction.hide(mBlankFragment); fragmentTransaction.show(mSecnodFragment); fragmentTransaction.hide(mThirdFragment); break; case R.id.radiobutton_c: Toast.makeText(this,"2",Toast.LENGTH_LONG).show(); fragmentTransaction.hide(mBlankFragment); fragmentTransaction.hide(mSecnodFragment); fragmentTransaction.show(mThirdFragment); break; } //别忘了提交事务 fragmentTransaction.commit(); } }