radioGroup+fragment的显示和隐藏

来源:互联网 发布:中国电信云计算公司 编辑:程序博客网 时间:2024/06/14 02:37

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();        }    };}

0 0
原创粉丝点击