여러 자식 조각이있는 조각이 있습니다. 나는 다음과 같은 코드로 부모 레이아웃에서 자식 조각을 배치 :사용되지 않음 장치 순환 후 하위 조각의 활동 참조
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
var transaction = ChildFragmentManager.BeginTransaction();
if (ChildFrag == null) {
var childFragment = new ChildFragment();
transaction.Replace (Resource.Id.child_fragment_container, childFragment, ChildFragment.FragmentTag);
}
... place other fragments
transaction.Commit();
}
ChildFragment ChildFrag {
get {
return ChildFragmentManager.FindFragmentByTag (ChildFragment.FragmentTag) as ChildFragment;
}
}
장치 회전 한 후, (나는 부모 조각이 새로 생성 된 활동에 대한 참조를 가지고 있음을 알 수 있지만, 아이 조각은 여전히 이전을 참조 사전 회전) 활동 인스턴스. 구성 변경 후 조각 트랜잭션을 수행하려고하면이 문제가 발생합니다. 예를 들어, 대화 상자를 시작하면 다음과 같은 오류가 발생합니다.
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1327)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1338)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:127)
at myapp.myviews.SpinnerRow.n_onClick(Native Method)
at myapp.myviews.SpinnerRow.onClick(SpinnerRow.java:68)
at android.view.View.performClick(View.java:4475)
at android.view.View$PerformClick.run(View.java:18786)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
at dalvik.system.NativeStart.main(Native Method)
하위 조각이 사용되지 않는 활동을 참조하게되는 원인은 무엇입니까?
this post에서 제공되는 솔루션은 단순히 부모 단편을 보유하지 않는 것입니다. 조각을 유지해야합니다.
예. 이것은 또한 작동합니다. 자식 조각이 부모 조각에 있는지 여부를 알 필요가 있기 때문에 때때로 디자인을 복잡하게 만들 수 있습니다. – joates