ここでは、アプリケーションでタブレットで行うことを希望しています。 Fragment0は決して動かないAndroidフラグメントを別のコンテナに移動するフラグメントのコンテナIDを変更できない
-----------------
| | | | |
| | | | |
|(0)| X | X | X |
| | | | |
| | | | |
-----------------
becomes
-----------------
| | | | |
| | | | |
|(0)|(1)| X | X |
| | | | |
| | | | |
-----------------
and then
-----------------
| | | | |
| | | | |
|(0)|(2)|(1)| X |
| | | | |
| | | | |
-----------------
etc...
が、他のものは右にシフトされています フラグメント(0)は、このような断片(1)...(n)を表示するであろういくつかのメニューがあります。右側の端から出ている断片は破壊されます。
だから私水平のLinearLayoutとセットアップの私のXMLレイアウトを、適切なIDが4でframeLayoutを含む(fragment0 ... fragment3)
私はインスタンス化し、表示fragment0、その後fragment1が、私はシフトすることはできませんよできそれは私が取得、後に右へ:私が見つけただけで、関連する質問がthis oneとthat oneある
ERROR/AndroidRuntime(343): FATAL EXCEPTION: main
java.lang.IllegalStateException: Can't change container ID of fragment ...
、運で提供されるすべてのさまざまなソリューションを試してみました。 .add()
続いしようとしましたFragmentTransaction.remove()
は、異なる順序でそれらを試してみましたが、(たとえ誰かが提案し二回としてコミットしようとしている)を介して中間にコミットするために、.replace()
を試してみましたaddToBackStack()
...まだ運を呼び出そうとしました。
質問は、このようなフラグメントをFragmentTransactionで移動できるかどうかです。はいの場合、私は間違って何をしていますか(そしてボーナスは、それを生み出すことが可能ですか?)。そうでない場合は、これを実装する適切な方法は何でしょうか?私は断片を毎回(それぞれがいくつかの時間がかかることがウェブ上でいくつかのクエリを実行します)再インスタンス化する必要はありません
注意。これは、1つを再現するための活動に戻って、すべてのデータを抽出することが可能ですが、私はむしろ
私が探していることはしませんが、あなたのコードを変更しようとしています...私ができる場合は投稿します... – Matthieu
私は必要なものをできました。あなたが作成した要点に自分の変更をどのようにプッシュするのか分からないので、そこに入れます:https://gist.github.com/4166640 – Matthieu
すみません。それは誤植ですか、 'frag_fragaccordion.xml'の' RelativeLayout'ではなく 'LinearLayout'でしょうか? – midnite