radioGroup+fragment的显示和隐藏
2017-05-02 11:12
218 查看
1、默认选择第一个跟
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();
}
};
}
((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();
}
};
}
相关文章推荐
- 关于Fragment的显示与隐藏结合RadioGroup的默认选中问题
- ViewPager,RadioGroup,FragmentManager 详解 <一> 主菜单 RadioGroup 控制显示Fragment ,FragmentManager
- FragmentTabHost+RadioGroup+RadioButton创建底部菜单(隐藏顶部默认)
- radioGroup+fragment
- RadioGroup+ViewPager+Fragment
- 通过JS,选取radio时显示/隐藏table的功能
- 常用RadioGroup+Fragment点击切换,RadioButton图标设置自己想要的位置及大小
- Android 在Fragment 中控制 Activity 的控件隐藏和显示
- 微信小程序开发之radio实现显示和隐藏功能
- RadioGroup结合RadioButton使用切换Fragment片段
- 自定义支持多行显示的RadioGroup
- RadioGroup+Fragment
- Fragment + RadioGroup 实现类似于Tab的效果
- Android - Fragment 控件Activity里的控件并的显示与隐藏
- 用RadioButten或CheckBox实现div的显示与隐藏
- RadioGroup + Fragment实现项目框架搭建
- tabHost研究二 ,android应用中,大部分的软件都会采用把按钮放在底部显示(tabHost)。利用三个Radiobutton嵌套在RadioGroup 。
- Fragment中显示隐藏Activity中的view
- Android零基础入门第88节:Fragment显示和隐藏、绑定和解绑
- Android RadioGroup.check() onCheckedChanged 回调 3 次 FragmentTransaction.commit() 不会 立即 起作用