早先这段代码可以正常工作,但是现在它突然停止工作了。 fragment 未与父 Activity 分离。

public void reLoadFragment(Fragment fragment)
{
    Log.i(LogGeneratorHelper.INFO_TAG, "reloading fragment");
    // Reload current fragment
    Fragment frg = null;
    frg = getSupportFragmentManager().findFragmentByTag(fragment.getClass().getName());
    frg.onDetach();
    final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.detach(frg);
    ft.attach(frg);
    ft.commit();
    Log.i(LogGeneratorHelper.INFO_TAG, "reloading fragment finish");
}

最佳答案

支持库更新25.1.0后ft.detach()不起作用。此解决方案在更新后可以正常工作:

getSupportFragmentManager().beginTransaction().detach(oldFragment).commitNowAllowingStateLoss();
getSupportFragmentManager().beginTransaction().attach(oldFragment).commitAllowingStateLoss();

信用:
Refresh or force redraw the fragment

关于android - 刷新 fragment android,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42855602/

10-09 08:48