Fragment的切换
//存储fragment
private ArrayList<BaseFragment> list;
list = new ArrayList<>();
//初始化fragment
initFragment();
//默认显示
switchFragment(0);
rg.check(R.id.rg_message);
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
switch (checkedId) {
case R.id.rg_message:
switchFragment(0);
break;
case R.id.rg_ding:
switchFragment(1);
break;
case R.id.rg_work:
switchFragment(2);
break;
case R.id.rg_contact:
switchFragment(3);
break;
case R.id.rg_me:
switchFragment(4);
break;
default:
break;
}
}
});
}
/**
* 切换Fragment
*/
private void switchFragment(int posi){
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
for (int i = 0; i < list.size(); i++) {
Fragment fragment = list.get(i);
if(i==posi){
//说明要显示这个fragment
if(fragment.isAdded()){
transaction.show(fragment);
}else {
//如果没加进来。那么就添加,
transaction.add(R.id.fl,fragment);
}
}else {
//说明要隐藏这个fragment
if(fragment.isAdded()){
transaction.hide(fragment);
}
}
}
transaction.commitAllowingStateLoss();
}
//初始化fragment
private void initFragment() {
BaseFragment messagefragment = new MessageFragment();
BaseFragment dingfragment = new DingFragment();
BaseFragment workfragment = new WorkFragment();
BaseFragment contactfragment = new ContactFragment();
BaseFragment mefragment = new MeFragment();
list.add(messagefragment);
list.add(dingfragment);
list.add(workfragment);
list.add(contactfragment);
list.add(mefragment);
}