在我的情况下刷新片段的视图

时间:2012-03-28 09:40:36

标签: android android-layout android-intent android-emulator android-widget

我想刷新 backstack中最新片段的视图。 (我的所有片段都添加到backstack

我尝试的是:

首先,从backstack找到最新的片段:

Fragment currentFragment = null;

try {
    currentFragment = fragmentManager.findFragmentById(R.id.fragment_placeholder);
    return currentFragment;
} catch (NullPointerException e) {
    return currentFragment;
}

其次,弹出backstack的最新片段:

fragmentManager.popBackStack(); //did I do wrong here??

终于,再次将片段添加到Backstack:

fragmentTransaction.replace(R.id.fragment_placeholder, currentFragment, fragmentName);

fragmentTransaction.addToBackStack(null);

fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.commit();

但是,当我运行上述程序时,我最终得到了空白页。似乎已删除显示的(最新)片段,但不会添加回来。为什么?如何刷新片段视图? (我这样做是因为我的语言环境已更改,需要刷新显示的片段视图)

============我试过的第二种方式==============

我收到最新的片段currentFragment后,我还尝试直接调用onCreateView()以刷新视图:

currentFrag.onCreateView(getLayoutInflater(), null, null);

但是我得到了 NullPointerException

0 个答案:

没有答案