問題タブ [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.

0 投票する
2 に答える
1027 参照

android - バックスタックのすべてのフラグメントを非表示にしますが、戻ることはできます

アプリをナビゲートするユーザーに基づいてフラグメントを追加するアクティビティに小さなレイアウトがあります。

ユーザーが次のようにナビゲートすると仮定します。

アクティビティ -> フラグメント A -> フラグメント B -> フラグメント C -> ボタン クリック

フラグメントを非表示にして、空白のアクティビティを再度表示できるようにしたいと考えています。

これは、フラグメントをアクティビティに追加する方法です。

すべてのフラグメントをクリアするには、次を使用します。

getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

ただし、ユーザーが押し戻した場合に (アプリを終了するのではなく) フラグメント C に戻ることができるように、フラグメントをクリアする方法はありますか?

0 投票する
1 に答える
202 参照

android - 向きの変更後に Android フラグメント バックスタック アニメーションが失敗する

一度に 1 つだけが表示される 2 つのフラグメントをホストするアクティビティがあります。事実上、ユーザーは、さまざまな環境条件を通じて、いつでも 2 つの間を切り替えることができる必要があります。

ユーザーがLoginFragmentログイン時に最初に目にする と、ユーザーがログインして (自然に) アカウントがロックされLockoutFragmentた後に に置き換わる可能性のある があります。LoginFragment

それが典型的なケースなのですが、LockoutFragment例えばユーザーがアプリを使っていて何らかの理由でアカウントがロックされていて、ホストアクティビティ( LoginActivity)を再度開いてLockoutFragment、の外観を切り替える「ログインに戻る」ボタンを提供しますLoginFragment(これも当然です)。

したがって、私の目標は、ユーザーが 2 つのフラグメントのうち、最初に表示された方を切り替えられるようにすることです。ホスト アクティビティでは、次の関数を使用してこの効果を実現しています。

これらの機能は、アプリの最初の起動後にユーザーが

  1. ログインを試み、
  2. ロックアウトフラグメントに移動し、
  3. デバイスの向きを変更し
  4. ログイン フラグメントに戻ります。

ログイン フラグメントは存在しますが、アニメーションがまったく再生されなかったかのように見えなくなります。popEnter私はまだそれとやり取りできるので、それが存在していることを知っています。

また、次の点にも注意してください。

  • 私は両方のフラグメントを持っsetRetainInstance(true)ています
  • これは、ユーザーがロックアウト フラグメントからデバイスの向きを変更した場合にのみ発生します
  • Lollipop を実行しているシミュレーターとデバイスの両方でこれを試しましたが、結果は同じでした

再配向後にバックスタックが破損している可能性はありますか?

ありがとうございました!

0 投票する
0 に答える
545 参照

android-fragments - Android バックスタックが、同じアクティビティ内の複数のフラグメントで機能しない

まず第一に、私のような初心者をサポートしてくださっているすべての方々に感謝します。

次のシナリオでアプリケーションを作成しています:-

  1. カテゴリを表すグリッドビューを持つ HomeScreenActivity があります。
  2. グリッド項目を押すと、グリッドビューにサブカテゴリを表示する「SubcategoryFragment」という名前のフラグメントが読み込まれます。
  3. サブカテゴリをクリックすると、「DetailsFragment」という名前の別のフラグメントが読み込まれます。
  4. DetailsFragment の onCreateView メソッドで、表示したいデータが DB に存在するかどうかを確認します。データが DB にある場合は、単にリストビューにロードされます。戻るボタンを押すと、問題なくすべて正常に動作します。
  5. しかし、データが DB に存在しない場合は、Web サーバーからデータを取得する asynctask を実行します。データが来て、正しく表示されます。しかし、戻るボタンを押すと、空白の画面が表示されます。

戻るボタンを押すとサブカテゴリのフラグメントが表示されると思いますが、空白の画面が表示されます。

過去 3 日間、よく検索して苦労しましたが、何が起こっているのかわかりません。

私を助けてください。以下にコードを投稿しています:-

HomeScreenActivity.java

HomeFragment.java

SubcategoryFragment.java

DetailsFragment.java

私が試したこと: -

  1. 空白の画面を示す OnBack Press フラグメント
  2. [戻る] ボタンが押されたときの In Fragment アクティビティは空白です

問題を追跡して解決するのを手伝ってください。

入力ミスやフォーマットミスがある場合は申し訳ありません。

0 投票する
3 に答える
104 参照

android - Fragment バックスタックを使用したクエリ

A と B の 2 つのフラグメントがあるとします。

フラグメント A が上にあります。ここで、フラグメント B を追加し、A をバックスタックに保持します。

戻るボタンを押すと、B が削除され、A が一番上に表示されます。

この時点で呼び出される A のコールバック メソッドはありますか?

: onResume はアクティビティと密接に結びついているため、呼び出されません。フラグメントの onResume() は、アクティビティの onResume() が呼び出されたときにのみ呼び出されます。

0 投票する
3 に答える
3960 参照

android - 戻るボタンで子フラグメントから親アクティビティに戻る

メイン アクティビティと 2 つのフラグメントがあります。私の主な活動には、フラグメントをナビゲートするナビゲーション ドロワーがあります。私はこのように押された戻るボタンを処理します:

2 つのフラグメント間を移動した後、戻るボタンを押すと、バックスタックから最後のフラグメントが取得されます。ただし、フラグメントから別のフラグメントに移動することはできません。

より明確:

1 つのアクティビティ (ナビゲーション ドロワー付き) と 2 つのフラグメントがあります。ナビゲーション ドロワーから、両方のフラグメントに何度でも移動できます。しかし、戻るボタンを押すと、常に に戻りたいと思いますmain_activity.xml

0 投票する
2 に答える
475 参照

java - Android バックスタックは onCreate メソッドで null です

メイン アクティビティに 2 つのフラグメントがあります (1 番目のフラグメント、2 番目のフラグメント)。onCreateメイン アクティビティのメソッドで、最初のフラグメントをコンテナー ビューに置き換えます。

2 番目のフラグメントには があり、ListViewその項目をクリックすると、新しいアクティビティが詳細として開始されます。

しかし、メインのアクティビティに戻ると、It is in onCreate イベントのために最初のフラグメントが表示されます。

バックスタックに最後のフラグメントがあり、それを表示するかのようにバックスタックを使用しようとしました。しかし、onCreate メソッドでは、バック スタックは常に null でした。

これが私のonCreateおよびreplaceFragmentsメソッドコードです:

onCreate別のアクティビティから来たときにメソッドでスタック値を取得する方法は?

マイスクリーン スクリーン

0 投票する
1 に答える
1297 参照

android - タブを含むフラグメントでバックスタックを処理する

コンテナーとナビゲーション ドロワーを備えた単一のアクティビティを含む Android アプリケーションを作成しようとしています。最初は空のコンテナは、次のようにフラグメントをロードViewPagerするタブレイアウト内にあるフラグメントをロードしますFragmentTransaction

ActionBarv7 の v7でv4 フラグメントを使用していActionBarActivityます。

ロードされたすべてのフラグメントは、実際の使いやすさを保持する他のフラグメントを含むタブのみをロードするフラグメントです。このようなタブ読み込みフラグメントの例:

私が直面している問題は、バックスタックにあります。フラグメントがバックスタックに追加され、戻るボタンを押すと、アプリは希望どおりに前のフラグメントに戻り、タブのレイアウト自体は表示されますが、何も読み込まれていないようにタブの内容は空ですそのタブ。それが発生した場合、ナビゲーションドロワーでその画面を再度選択したときにのみ、タブのコンテンツをリロードすることができます。

onBackPressedアクティビティでをオーバーライドしようとしました:

しかし、私が言ったように、前のフラグメントに戻っているようですが、そのフラグメント内のタブはフラグメントを再描画していません。

この問題を解決するにはどうすればよいですか?

バックスタックの元のフラグメントのタブ レイアウトは表示されますが、タブ内のフラグメントは表示されないため、タブのコンテンツを何らかの方法で更新して再描画する必要がある可能性はありますか? そんなことができるとしたら、どうすればいいですか?

0 投票する
3 に答える
4320 参照

android - バックスタックからフラグメントを削除する方法

5 つのフラグメント (ウィザード) を持つアクティビティがあります。

Success フラグメントに SubmitMore ボタンをテーピングした後、バックステージから Frag1、Frag2、および SubmitFrag を削除し、StartFrag に戻りたいと思います。どうやってするか?