1

現在、メインのレイアウトとして、引き出しのアイテムがクリックされたときに各 "ページ"を保持するために使用する埋め込みFrameLayoutを使用して、アプリケーションが最初に起動すると、最初のフラグメントが表示されます。後で他のフラグメントを追加/置換することはできますが、私の問題は、最初の「初期フラグメント」の「戻る」ボタンをクリックしたときに、その特定のフラグメントをレイアウトから削除したくないということです。現在、それは削除されているだけで、他のコンテンツを持たない引き出しレイアウトを表示しています(意味があります)。最初のフラグメントが最後に表示されていて、その最初のフラグメントを削除するのではなく、戻るボタンが押された場合は、自動的に終了するようにしてから、別のバックプレスを実行して終了します。最後のフラグメントがバックスタックから削除されないようにします

  • をbackstackに最初のフラグメントを追加していない:私はやって考えてい

    物事。 (もし私がこれを行うと、それはもう少し長い文字列であるフラグメントのクラス名と比較することができます。あるいは、最初のフラグメントが配置された(そしてバックスタックに追加されない)ブール値を使用できます。そのフラグメントは、今追加することができます。

  • 活動のonBackPressed機能をオーバーライド

誰もがこれを行うか、より良い方法を考えることができるの推奨方法がありますか?おかげ

+0

私は最初のオプションを提案します。つまり、バックスタックにフラグメントを追加しないことです。 – Krish

+0

私は、onBackPressedをオーバーライドすることを提案し、frsgmentスタックにエントリがある場合のみ戻します。 – EpicPandaForce

答えて

2

最初の箇条書きあなたが戻ってきたときに条件を処理する必要は他にありませんが、それは正しいでしょうか?そうであれば、コードの行は少なくなります(複数を追加するのではなく、1つを削除します)。デフォルトのActivityメソッドをそのまま使用します。

私が知っているのは、あなたが尋ねたものではありませんが、最初の箇条書きはきれいで、私は他の何かを試していないと思います。

+0

実際に、それは私が尋ねたものです。役に立った何か他のものが出てくるのを見るために答えを受け入れるのを待つつもりです。ありがとう – Michael

0

私は自分のStack of fragmentを使用して同じアプリを実装しました。 onBackPressedメソッドも実装されています。

ユーザが引き出しのアイテムをクリックするたびに、スタックでフラグメントを追加し、その長さが1になるとバックプレスでフラグメントを追加します。メッセージでアクティビティを終了します。

アイテムクリック - コンテナ内のフラグメントを追加/置換します。

OnBackPressed - スタックのポップフラグメントと最後の1つがアクティビティを終了しました。

希望すると、別の選択肢があります。

関連する問題