/** fragment替换 */
protected void traFragment(Fragment targetFragment) {
transaction = manager.beginTransaction();
if (currentFragment != null) {
transaction.hide(currentFragment);
}
if (manager
.findFragmentByTag(targetFragment.getClass().getSimpleName()) != null) {
transaction.show(targetFragment);
} else {
transaction.add(R.id.LiveContentId, targetFragment, targetFragment
.getClass().getSimpleName());
}
currentFragment = targetFragment;
transaction.commit();
}
采用以上方法,对fragment进行替换,当多次替换时,容易出现fragment重叠问题。而出现本问题的原因在于,当切换时,fragmentActivity已经被销毁了。
此时可以采用重写onSaveInstanceState方法,将方法中的内容注释掉,即可解决问题
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
// super.onSaveInstanceState(outState);
}