ViewPager con una página que contiene varios Fragmentos "java.lang.IllegalArgumentException: No se ha encontrado una vista para el ID"

En mi pequeña aplicación de Android, tengo unViewPager con 3 páginas, cada página contiene un fragmento, todo funciona bien con unFragmentStatePagerAdapter (verpregunta anterior).

Ahora para pantallas más grandes, me gustaría mantener unViewPager, pero quiero que los dos primeros fragmentos estén en la misma primera página.

Para esto, implemento mi propio PagerAdapter y esto funciona principalmente, el único problema que estoy tratando de resolver es cuando estoy girando la pantalla, recibo un error:

12-11 16:34:13.526: ERROR/AndroidRuntime(9221): FATAL EXCEPTION: main
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.matthieu/com.matthieu.TestActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f030002 (com.matthieu:id/top_fragment) for fragment TestFragment{481a3a98 #0 id=0x7f030002}
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
        at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3815)
        at android.app.ActivityThread.access$2400(ActivityThread.java:125)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2037)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:123)
        at android.app.ActivityThread.main(ActivityThread.java:4627)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:521)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f030002 (com.matthieu:id/top_fragment) for fragment TestFragment{481a3a98 #0 id=0x7f030002}
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)
        at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1861)
        at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
        at android.app.Activity.performStart(Activity.java:3781)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2636)
        ... 12 more

Pongo un código de muestra que simula lo que estoy tratando de hacer (y muestra este mensaje de error) enGitHub.

Supongo que un problema que tengo es debido a los fragmentos que tengo en la aplicación real, realmente no puedo tener unstatic newInstance constructor, pero en su lugar, los Fragmentos se crean con anticipación y tienen 'setRetainInstance (true);' conjunto.

Entiendo la id delviewGroup que contendrá el fragmentodebe ser parte de la jerarquía, y eventualmente, supongo, es ...

Si hay alguna diferencia, estoy usando la biblioteca de soporte y la barra de bloqueo Sherlock para mantener la compatibilidad con los dispositivos más antiguos.

¿Alguna idea sobre cómo hacer esto?

EDITAR: He encontrado que si quito los Fragmentos de laFragmentManager enonSaveInstanceState Ya no estoy teniendo ningún accidente. Todos los fragmentos se recrean desde cero, lo que no es lo que quiero, pero creo que podría tener que hacer esto y recuperar esos fragmentos más tarde ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta