私の小さなAndroidアプリケーションでは、ですべて正常に機能していますが、各ページに3ページのViewPager
が3ページあります(earlier question参照)。複数のフラグメントを含む1ページのビューペア「java.lang.IllegalArgumentException:IDのビューが見つかりません」
大きな画面では、ViewPager
のままにしますが、最初の2つのフラグメントを同じ最初のページに配置します。このため
、私は自分のPagerAdapterを実装し、これは主に働いている、私が解決しようとしている唯一の問題は、私は、画面を回転させていたとき、私はエラーを取得する次のとおりです。
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
私はサンプルを入れます私がやろうとしていることをシミュレートしているコード(とこのエラーメッセージを表示)はGitHubにあります。
実際のアプリケーションで使用しているフラグメントのため、実際にはstatic newInstance
コンストラクタを使用できませんが、フラグメントは事前に作成され、 'setRetainInstance(true);'セット。
私はフラグメントshould be part of the hierarchyが含まれていますviewGroup
のIDを理解し、そして最終的に、私は推測、それは...
である、それはどんな違いをした場合、私は維持するためのサポートライブラリとSherlockActionBarを使用しています古いデバイスとの下位互換性。
これについてどうやったらいいですか?
EDIT:私はonSaveInstanceState
にFragmentManager
からフラグメントを削除する場合、私はもう任意のクラッシュを取得しておりませんことを発見しました。すべてのフラグメントは、私は物事の別の方法に移動していても、......
githubにネストされた断片を使用して私の解決策を押した私はあなたの元の問題を解決するためのいくつかのアプローチを概説しましたここに:http://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html – CommonsWare
@CommonsWareマーク、あなたの注意のおかげで:)私は実際に前にそのブログ記事を読んだ。私は、ページを水平に分割しているので、2番目のアプローチしか動作しないと思います。私はそのページをもう一度読んでそこからいくつかのアイデアを選ぶことができるかどうかを見ます。 – Matthieu
@CommonsWareは、これらの異なるアプローチはありません。最も近いものは2番目のものですが、ページにフラグメントは含まれていません。単純なウィジェットだけです...私はできる限りすべてを試してアイデアを使い果たしました。誰かが本当に良いアイデアを持っていない限り、私はこれについて別の方法をとらなければならないでしょう。 – Matthieu