タグ付けされた質問 「fragment-backstack」

7
これは、深くネストされたスタックを離れるときにフラグメントバックスタックをクリーンアップする正しい方法ですか?
Android互換性ライブラリを使用してフラグメントを実装し、レイアウトサンプルを拡張して、別のフラグメントを起動するボタンがフラグメントに含まれるようにしました。 左側の選択ペインには、5つの選択可能なアイテムがあります- A B C D E。 それぞれがFragmentTransaction:replace詳細ペインに(を介して)フラグメントをロードします-a b c d e ここでe、フラグメントを拡張e1して、詳細ペインにも別のフラグメントをロードするボタンを含めました。e次のように、フラグメントのonClickメソッドでこれを行いました。 FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); ft.replace(R.id.details_frag, newFrag); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack(null); ft.commit(); 次の選択を行った場合: E - e - e1 - D - E 次に、フラグメントeは詳細ペインにあります。これで結構です。ただし、backこの時点でボタンを押しても何も起こりません。e1まだスタックにあるので、2回クリックする必要があります。さらに、クリックした後、onCreateViewでnullポインター例外が発生しました。 この問題を「解決」するために、A B C D Eが選択されている場合は常に次のコードを追加しました。 FragmentManager fm = getActivity().getSupportFragmentManager(); for(int i = 0; i < fm.getBackStackEntryCount(); ++i) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.