問題タブ [fragment-backstack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android: フラグメントが予期しない動作をする (突然透明になる?)
フラグメントに問題があります。このコードを使用して、フラグメント間を移動します。
「メイン」フラグメント間(バックスタックなし、ユーザーが押したときに終了するようにするため(機能します)):
「内側」のフラグメント間 (バックスタックあり):
ただし、次の場合:
フラグメント A -> フラグメント A1
フラグメント A1 -> フラグメント B
戻るボタンを押す (アプリを終了する必要があります) -> フラグメント A1 に戻ります
A1 フラグメントはバックスタックから削除されず、バックグラウンドにとどまっているようです。考えられる解決策の1つは、すべてのフラグメントに白い背景を設定することだと思いました..しかし、これは問題を解決せず、単に非表示にするだけです. では、可能な解決策は何でしょうか?
android - Android フラグメントがバック スタックに追加されない
NavigationDrawer ベースのアプリケーションを実行しています。以下のような階層があります
NavigationDrawer --> RootFragment (バック スタックに追加されません) --> 詳細フラグメント (バック スタックに追加されます)
現在、ユーザーが戻るボタンを押してアプリを終了しようとしたときに、ユーザーにメッセージを表示しようとしています。ここに私が使用しているコードがあります。
バック スタックに追加された詳細フラグメントから [戻る] ボタンをクリックすると、アラート メッセージが表示されます。代わりに、ルートフラグメントに戻ることを除いて。
しかし、このようにコードを更新すると、戻るボタンを押すと、ユーザーはルート ビューに戻ります。そのため、詳細フラグメントをバックスタックに追加しても、getFragmentManager().getBackStackEntryCount() はゼロのように見えます。
rootFragment から詳細フラグメントを呼び出す方法を次に示します。
これは、ナビゲーション ドロワー サイド メニューから開かれるルート ビューです。
ここで何が間違っていますか?これを実装する正しい方法は何ですか?
ありがとう。
java - 静的 Fragment レイアウトでのトランザクション
次のようなフラグメント トランザクションを実行できます。
このレイアウトを持つアクティビティでは、次のようになります。
Fragment1
次のように、通常のLinearLayout
and Fragment2
tooが含まれている場所:
Fragment3
次のように、もう一度2 番目のトランザクションを実行できます。
そして、うまくいくように見えますが、そうであってはならないことを私は知っています。このまま使うとアプリの安定性が危ないのでしょうか?なぜこのように機能するのか、どのように機能するのか、誰かがこのケースについて説明してくれませんか。
Fragmentを使用して追加/置換する必要があることはわかってFramelayout
いますが、私の場合、これを変更する時間がありません。
android - アクティビティが再作成された後、フラグメント バックスタック内の 2 つの Android ViewPager が正しく表示されない
私の Android アプリにはアクティビティが 1 つしかなく、すべてのフラグメントが 1 つのフレームレイアウトで追加または置換されます。
問題は、フラグメント バックスタックに 2 つの異なるビューページャーがあり、アクティビティが再作成されたときに、2 番目のビューページャーが最初のビューページャーとして表示されることです。
以下は、フラグメントを発生順にバックスタックに追加する方法です。3 は、アクティビティが再作成された後に発生するフラグメントです。
- setupPlacesEventMainView()、これは FragmentStatePagerAdapter を使用するビューページャーです (アクティビティが再作成された後に適切に表示されます)
- setupPlaceDetailViewPager、これは FragmentStatePagerAdapter を使用するビューページャーです。(問題: PlacesEventMainViewPager が PlaceDetailViewPager の代わりにここに表示されます。この問題は、EventSpecials に移動しなくても発生します)
- setupEventSpecials()、これはリストフラグメントです。(アクティビティが再作成された後、適切に表示されます)
PlacesEventMainViewPager をバックスタックに追加する
バックスタックに PlaceDetailViewPager を追加
SpecialsList をバックスタックに追加する
フラグメントに含まれるもの。
- PlacesEventMainViewPager には 3 つのリストフラグメントが含まれています。
- PlaceDetailViewPager には 2 つのリストフラグメントが含まれています
- SpecialsList は 1 つのリストフラグメントです。
PlacesEventMainViewPager フラグメント内の項目の 1 つをクリックすると、PlaceDetailViewPager フラグメントにアクセスできます。PlaceDetailViewPager フラグメントのボタンをクリックすると、SpecialsList にアクセスできます。
詳細が必要な場合はお知らせください。ありがとう!
android - 上ボタンを押したときの適切なバックスタック ナビゲーション
onBackPressed() を使用して、MainActivity (多くのフラグメントがある) の [戻る] ボタンにバックスタック ナビゲーションを実装しました。上ボタンを押したときに同じバックスタック ナビゲーションを実装したい。問題は、1 つのフラグメントでのみ [上へ] ボタンが必要ですが、目的のフラグメントで [上へ] ボタンを押すと、すべてのフラグメントに [上へ] ボタンが表示されることです。setDisplayHomeAsEnabled(false) でさえ機能していません。1 つのフラグメントのみに [上へ] ボタンを表示するにはどうすればよいですか?
android - AndroidでフラグメントバックスタックのOutOfMemoryの問題を修正するには?
私の Android アプリケーションには、リスト ビューとリスト アイテムの詳細ビューがあります。
リストビューと詳細ビューは、1 つのアクティビティ内のフラグメントです。最初にリスト フラグメントをアクティビティにロードし、ユーザーがリスト アイテムをクリックすると、同じビューが詳細フラグメントに置き換えられ、そのフラグメントが 1 つのアクティビティ内のバックスタックに追加されます。
コード:
ユーザーが戻るボタンをクリックすると、リスト ビューになるので問題ありません。
だから私の問題は、ユーザーがリストアイテムアプリを数回(10回以上)クリックするとOutOfMemoryでクラッシュすることです
私が検索したところ、これはバックスタックの通常の動作であり、追加されたフラグメントがスタックからポップされたとしても、メモリから追加されたフラグメントがクリーンアップされないと言う人がいます。
ビジネス要件のため、これに 2 つのアクティビティを設定することはできません。
リストと詳細のフラグメントが同じアクティビティを持ち、バックスタックを使用してナビゲートするのが最善の方法ではないという私のアプローチではありませんか?
そうでない場合、私が従うべき最善の選択肢は何ですか?
android - 構成の変更でフラグメント内のバックスタックを処理する方法は?
java.lang.IllegalStateException: onSaveInstanceState の後にこのアクションを実行できません
"。
Pls は、方向の変更後にバックスタック フラグメントを処理する適切な方法を説明してくれます。[注: フラグメント 3 から新しいフラグメント 5 にコミットしようとすると、クラッシュしました。]