radiogroup_switch_fragment代替tabhost 效果


平台:eclipse

说明:
使用radiogroup切换fragment,替代tabhost。
这是常用的iOS首页模式,献给被iOS产品经理折磨的Android程序员


private BaseFragment toFragment;
   
  /**
  * 切换Fragment
  *
  * @throws Exception
  */
  public void switchContent(String tag) {
  Log.d(TAG, "switchContent tag " + tag);
   
  mCurrentFragmentTag = tag;
   
  toFragment = (BaseFragment) getSupportFragmentManager()
  .findFragmentByTag(tag);
   
  // 强制刷新Home2Fra界面
  if (toFragment != null
  && tag.equals(Home2Fra.FRAGMENT_TAG)) {
  if (toFragment.isVisible()) {
  FragmentTransaction fmt = getSupportFragmentManager()
  .beginTransaction();
  fmt.remove(toFragment);
  toFragment = null;
  }
  }
   
  // 强制刷新Home2Fra界面
  if (toFragment != null && tag.equals(Home2Fra.FRAGMENT_TAG)) {
  if (toFragment.isVisible()) {
  FragmentTransaction fmt = getSupportFragmentManager()
  .beginTransaction();
  fmt.remove(toFragment);
  toFragment = null;
  }
  }
   
  // 强制刷Home2Fra界面
  if (toFragment != null
  && tag.equals(Home2Fra.FRAGMENT_TAG)) {
  if (toFragment.isVisible()) {
  FragmentTransaction fmt = getSupportFragmentManager()
  .beginTransaction();
  fmt.remove(toFragment);
  toFragment = null;
  }
  }
   
  if (toFragment == null) {
  Log.d(TAG, "toFragment == null " + tag);
  toFragment = FragmentFactory.getFragmentByTag(tag);
  if (toFragment == null) {
  throw new NullPointerException(
  "you should create a new Fragment by Tag" + tag);
  }
   
  FragmentTransaction fragmentTransaction = getSupportFragmentManager()
  .beginTransaction();
  fragmentTransaction
  .add(R.id.lay_content_container, toFragment, tag);
  if (mCurrentFragment != null) {
  fragmentTransaction.hide(mCurrentFragment);
  }
  fragmentTransaction.commit();
  mCurrentFragment = toFragment;
  } else {
  if (mCurrentFragment == toFragment) {
  return;
  }
  if (!toFragment.isAdded()) {
  Log.d(TAG, "!toFragment.isAdded() " + tag);
  FragmentTransaction fmt = getSupportFragmentManager()
  .beginTransaction();
  if (mCurrentFragment != null) {
  fmt.hide(mCurrentFragment);
  }
  fmt.add(R.id.lay_content_container, toFragment, tag);
  fmt.commit();
  mCurrentFragment = toFragment;
  } else {
  Log.d(TAG, "toFragment.isAdded() " + tag);
  if (toFragment.isHidden()) {
  Log.d(TAG,
  "toFragment.isHidden() " + tag + toFragment.getId());
  }
  FragmentTransaction fmt = getSupportFragmentManager()
  .beginTransaction();
  if (mCurrentFragment != null) {
  Log.d(TAG, "mCurrentFragment != null "
  + mCurrentFragment.getTag());
  fmt.hide(mCurrentFragment);
  } else {
  Log.d(TAG, "mCurrentFragment == null ");
  }
  fmt.show(toFragment).commit();
  mCurrentFragment = toFragment;
  }
  }
   
  }



 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值