List<Fragment> list = new ArrayList<Fragment>();
private FragmentManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data();
manager = getSupportFragmentManager();
manager.beginTransaction().add(R.id.fl,list.get(0)).commit();
RadioGroup rg = (RadioGroup) findViewById(R.id.rg);
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
switch(i){
case R.id.rb1:
manager.beginTransaction().replace(R.id.fl,list.get(0)).commit();
break;
case R.id.rb2:
manager.beginTransaction().replace(R.id.fl,list.get(1)).commit();
break;
case R.id.rb3:
manager.beginTransaction().replace(R.id.fl,list.get(2)).commit();
break;
case R.id.rb4:
manager.beginTransaction().replace(R.id.fl,list.get(3)).commit();
break;
}
}
});
}
private void data() {
frag1 frag1 = new frag1();
frag2 frag2=new frag2();
frag3 frag3 = new frag3();
frag4 frag4 = new frag4();
list.add(frag1);
list.add(frag2);
list.add(frag3);
list.add(frag4);
}
}
Fragment类
public class frag1 extends Fragment {
List<Fragment> fraglist=new ArrayList<Fragment>();
private ViewPager vp;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_frag, container, false);
vp = view.findViewById(R.id.vp);
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
indataFrag();
vp.setAdapter(new MyAdapter(getChildFragmentManager()));
}
private void indataFrag() {
ChildFrag1 cf1 = new ChildFrag1();
ChildFrag2 cf2 = new ChildFrag2();
fraglist.add(cf1);
fraglist.add(cf2);
}
class MyAdapter extends FragmentPagerAdapter{
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fraglist.get(position);
}
@Override
public int getCount() {
return fraglist.size();
}
}
}