您的位置:首页 > 其它

radioGroup+fragment的显示和隐藏

2017-05-02 11:12 218 查看
1、默认选择第一个跟

((RadioButton) mRadioGroup.getChildAt(0)).setChecked(true);


2、demo代码:

public class NeedExcuteFragment extends Fragment {
private Unbinder unbinder;
private Context context;
private List<Fragment> fragmentList;
private List<Fragment> visiableFragments = new ArrayList<>();
@BindView(R.id.remainder_login_layout)
LinearLayout remainderLoginLayout;

@BindView(R.id.work_task_rg)
RadioGroup mRadioGroup;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_worktask, null);
unbinder = ButterKnife.bind(this, view);
context = getContext();
return view;
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
EventBus.getDefault().register(this);
initFragments();
mRadioGroup.setOnCheckedChangeListener(mCheckedListener);
((RadioButton) mRadioGroup.getChildAt(0)).setChecked(true);

}

@Override
public void onResume() {
super.onResume();
if (SPUtils.getBoolean(context, SPConstants.IS_LOGINED)) {
remainderLoginLayout.setVisibility(View.GONE);
} else {
remainderLoginLayout.setVisibility(View.VISIBLE);
}
}

private void initFragments() {
fragmentList = new ArrayList<>();
fragmentList.add(new NeedAssignFragment());
fragmentList.add(new NeedTourFragment());
fragmentList.add(new NeedRepairFragment());
fragmentList.add(new ActiveRepairActivity());
fragmentList.add(new UrgeToDoListFragment());
}

@OnClick(R.id.go_login)
void onClick(View view) {
switch (view.getId()) {
case R.id.go_login:
Bundle bundle = new Bundle();
bundle.putInt(SPConstants.FROM, SPConstants.NEED_EXCUTE);
FragmentActivity.startActivity(getContext(), LoginFragment.class, bundle);
break;
}
}

@OnClick({R.id.need_assign_layout, R.id.need_tour_layout, R.id.repair_layout
, R.id.auto_repair, R.id.catalyze_layout})
void DrawerItemClick(View view) {
switch (view.getId()) {
case R.id.need_assign_layout:
if (((RadioButton) mRadioGroup.getChildAt(0)).isChecked()) {
return;
}
((RadioButton) mRadioGroup.getChildAt(0)).setChecked(true);
break;
case R.id.need_tour_layout:
if (((RadioButton) mRadioGroup.getChildAt(1)).isChecked()) {
return;
}
((RadioButton) mRadioGroup.getChildAt(1)).setChecked(true);
break;
case R.id.repair_layout:
if (((RadioButton) mRadioGroup.getChildAt(2)).isChecked()) {
return;
}
((RadioButton) mRadioGroup.getChildAt(2)).setChecked(true);
break;
case R.id.auto_repair:
if (((RadioButton) mRadioGroup.getChildAt(3)).isChecked()) {
return;
}
((RadioButton) mRadioGroup.getChildAt(3)).setChecked(true);
break;
case R.id.catalyze_layout:
if (((RadioButton) mRadioGroup.getChildAt(4)).isChecked()) {
return;
}
((RadioButton) mRadioGroup.getChildAt(4)).setChecked(true);
break;
}
}

@Override
public void onDestroyView() {
super.onDestroyView();
EventBus.getDefault().unregister(this);
unbinder.unbind();
}

@Subscribe(threadMode = ThreadMode.MAIN)
public void changeView(MessageEntity msg) {
if (msg.what == SPConstants.EXIT_WHAT) {
remainderLoginLayout.setVisibility(View.VISIBLE);
}
}

private RadioGroup.OnCheckedChangeListener mCheckedListener = new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, @IdRes int checkedId) {
// int i = checkedId == R.id.need_assign_layout ? 0 : (checkedId == R.id.need_tour_layout ? 1 :
// (checkedId == R.id.repair_layout ? 2 : (checkedId == R.id.auto_repair ? 3 :
// (checkedId == R.id.catalyze_layout ? 4 : 0))));
View child = radioGroup.findViewById(checkedId);
int i = radioGroup.indexOfChild(child);
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
Fragment fragment = fragmentList.get(i);
if (fragment.isAdded()) {
transaction.show(fragment);
} else {
transaction.add(R.id.container_layout, fragment);
visiableFragments.add(fragment);
}
for (Fragment fragment1 : visiableFragments) {
if (fragment1 != fragment) {
if (fragment1.isVisible()) { //判断fragment是否正在显示
transaction.hide(fragment1); //隐藏fragment
transaction.addToBackStack(null);
}
}
}
transaction.commit();
}
};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: