App crashes when I navigate second time to nested Fragment
android, android-fragments
Solution
This is related to a known bug with nested Fragments. Here is one way to work around it - https://stackoverflow.com/a/15656428/574785
Problem
I am using Nested Fragment and The Fragment loads well.But when I load another fragment in this frameLayout and want to load the Nested Fragment again, My app is crashing. ``` 07-14 16:58:21.272: E/AndroidRuntime(1813): java.lang.IllegalStateException: Activity has been destroyed 07-14 16:58:21.272: E/AndroidRuntime(1813): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1342) 07-14 16:58:21.272: E/AndroidRuntime(1813): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595) 07-14 16:58:21.272: E/AndroidRuntime(1813): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574) 07-14 16:58:21.272: E/AndroidRuntime(1813): at me.kaidul.uhunt.Fragment1.onCreateView(Fragment1.java:23) 07-14 16:58:21.272: E/AndroidRuntime(1813): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) 07-14 16:58:21.272: E/AndroidRuntime(1813): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911) 07-14 16:58:21.272: E/AndroidRuntime(1813): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) 07-14 16:58:21.272: E/AndroidRuntime(1813): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 07-14 16:58:21.272: E/AndroidRuntime(1813): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) 07-14 16:58:21.272: E/AndroidRuntime(1813): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429) ``` My parent Fragment class: ``` public class Fragment1 extends SherlockFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment1, container, false); Fragment fragmentC = new HeadlinesFragment(); Fragment frag = new Child(); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.add(R.id.child_fragment, fragmentC ); transaction.add(R.id.child_fragment2, frag ); transaction.commit(); return rootView; } } ``` Edit: This is how I add all the fragments to activity: ``` FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); // Locate Position switch (position) { case 0: ft.replace(R.id.content_frame, fragment1); break; case 1: ft.replace(R.id.content_frame, fragment2); break; case 2: ft.replace(R.id.content_frame, fragment3); break; } ft.commit(); ```