我想刷新 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 。