碎片不应在屏幕方向上重新启动

时间:2014-01-17 07:42:33

标签: android android-fragments fragment

因为我使用不同的布局进行纵向和横向视图。我在片段中使用这些不同的布局。

为了保留片段的状态,我添加了:

      setRetainInstance(true);

在片段constrtuctor中。我还添加了

 android:configChanges="keyboardHidden|orientation|screenSize" 
活动标签中的

包含片段。

现在我不希望我的片段再次重启,因为我在这个片段中下载书时显示了百分比的进度条,所以当片段再次重新启动时,它将再次花费时间加载页面而不显示进度杆

1 个答案:

答案 0 :(得分:-1)

试试这个:

- 在FragmentActivity中覆盖此方法:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    if(yourFragment != null && yourFragment.isAdded()){
        getSupportFragmentManager().putFragment(outState, YourFragment.class.getName(), yourFragment);
    }
}

- onCreate()中的相同FragmentActivity将此:

if (savedInstanceState != null) {
        yourFragment = (YourFragment) getSupportFragmentManager().getFragment(savedInstanceState, YourFragment.class.getName());
    }

- 你不必使用onRetainInstance和/或android:configChanges