問題タブ [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 - バックスタックのすべてのフラグメントを非表示にしますが、戻ることはできます
アプリをナビゲートするユーザーに基づいてフラグメントを追加するアクティビティに小さなレイアウトがあります。
ユーザーが次のようにナビゲートすると仮定します。
アクティビティ -> フラグメント A -> フラグメント B -> フラグメント C -> ボタン クリック
フラグメントを非表示にして、空白のアクティビティを再度表示できるようにしたいと考えています。
これは、フラグメントをアクティビティに追加する方法です。
すべてのフラグメントをクリアするには、次を使用します。
getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
ただし、ユーザーが押し戻した場合に (アプリを終了するのではなく) フラグメント C に戻ることができるように、フラグメントをクリアする方法はありますか?
android - 向きの変更後に Android フラグメント バックスタック アニメーションが失敗する
一度に 1 つだけが表示される 2 つのフラグメントをホストするアクティビティがあります。事実上、ユーザーは、さまざまな環境条件を通じて、いつでも 2 つの間を切り替えることができる必要があります。
ユーザーがLoginFragment
ログイン時に最初に目にする と、ユーザーがログインして (自然に) アカウントがロックされLockoutFragment
た後に に置き換わる可能性のある があります。LoginFragment
それが典型的なケースなのですが、LockoutFragment
例えばユーザーがアプリを使っていて何らかの理由でアカウントがロックされていて、ホストアクティビティ( LoginActivity
)を再度開いてLockoutFragment
、の外観を切り替える「ログインに戻る」ボタンを提供しますLoginFragment
(これも当然です)。
したがって、私の目標は、ユーザーが 2 つのフラグメントのうち、最初に表示された方を切り替えられるようにすることです。ホスト アクティビティでは、次の関数を使用してこの効果を実現しています。
これらの機能は、アプリの最初の起動後にユーザーが
- ログインを試み、
- ロックアウトフラグメントに移動し、
- デバイスの向きを変更し、
- ログイン フラグメントに戻ります。
ログイン フラグメントは存在しますが、アニメーションがまったく再生されなかったかのように見えなくなります。popEnter
私はまだそれとやり取りできるので、それが存在していることを知っています。
また、次の点にも注意してください。
- 私は両方のフラグメントを持っ
setRetainInstance(true)
ています - これは、ユーザーがロックアウト フラグメントからデバイスの向きを変更した場合にのみ発生します
- Lollipop を実行しているシミュレーターとデバイスの両方でこれを試しましたが、結果は同じでした
再配向後にバックスタックが破損している可能性はありますか?
ありがとうございました!
android-fragments - Android バックスタックが、同じアクティビティ内の複数のフラグメントで機能しない
まず第一に、私のような初心者をサポートしてくださっているすべての方々に感謝します。
次のシナリオでアプリケーションを作成しています:-
- カテゴリを表すグリッドビューを持つ HomeScreenActivity があります。
- グリッド項目を押すと、グリッドビューにサブカテゴリを表示する「SubcategoryFragment」という名前のフラグメントが読み込まれます。
- サブカテゴリをクリックすると、「DetailsFragment」という名前の別のフラグメントが読み込まれます。
- DetailsFragment の onCreateView メソッドで、表示したいデータが DB に存在するかどうかを確認します。データが DB にある場合は、単にリストビューにロードされます。戻るボタンを押すと、問題なくすべて正常に動作します。
- しかし、データが DB に存在しない場合は、Web サーバーからデータを取得する asynctask を実行します。データが来て、正しく表示されます。しかし、戻るボタンを押すと、空白の画面が表示されます。
戻るボタンを押すとサブカテゴリのフラグメントが表示されると思いますが、空白の画面が表示されます。
過去 3 日間、よく検索して苦労しましたが、何が起こっているのかわかりません。
私を助けてください。以下にコードを投稿しています:-
HomeScreenActivity.java
HomeFragment.java
SubcategoryFragment.java
DetailsFragment.java
私が試したこと: -
問題を追跡して解決するのを手伝ってください。
入力ミスやフォーマットミスがある場合は申し訳ありません。
android - Fragment バックスタックを使用したクエリ
A と B の 2 つのフラグメントがあるとします。
フラグメント A が上にあります。ここで、フラグメント B を追加し、A をバックスタックに保持します。
戻るボタンを押すと、B が削除され、A が一番上に表示されます。
この時点で呼び出される A のコールバック メソッドはありますか?
注: onResume はアクティビティと密接に結びついているため、呼び出されません。フラグメントの onResume() は、アクティビティの onResume() が呼び出されたときにのみ呼び出されます。
android - 戻るボタンで子フラグメントから親アクティビティに戻る
メイン アクティビティと 2 つのフラグメントがあります。私の主な活動には、フラグメントをナビゲートするナビゲーション ドロワーがあります。私はこのように押された戻るボタンを処理します:
2 つのフラグメント間を移動した後、戻るボタンを押すと、バックスタックから最後のフラグメントが取得されます。ただし、フラグメントから別のフラグメントに移動することはできません。
より明確:
1 つのアクティビティ (ナビゲーション ドロワー付き) と 2 つのフラグメントがあります。ナビゲーション ドロワーから、両方のフラグメントに何度でも移動できます。しかし、戻るボタンを押すと、常に に戻りたいと思いますmain_activity.xml
。
java - Android バックスタックは onCreate メソッドで null です
メイン アクティビティに 2 つのフラグメントがあります (1 番目のフラグメント、2 番目のフラグメント)。onCreate
メイン アクティビティのメソッドで、最初のフラグメントをコンテナー ビューに置き換えます。
2 番目のフラグメントには があり、ListView
その項目をクリックすると、新しいアクティビティが詳細として開始されます。
しかし、メインのアクティビティに戻ると、It is in onCreate イベントのために最初のフラグメントが表示されます。
バックスタックに最後のフラグメントがあり、それを表示するかのようにバックスタックを使用しようとしました。しかし、onCreate メソッドでは、バック スタックは常に null でした。
これが私のonCreate
およびreplaceFragmentsメソッドコードです:
onCreate
別のアクティビティから来たときにメソッドでスタック値を取得する方法は?
マイスクリーン
android - タブを含むフラグメントでバックスタックを処理する
コンテナーとナビゲーション ドロワーを備えた単一のアクティビティを含む Android アプリケーションを作成しようとしています。最初は空のコンテナは、次のようにフラグメントをロードViewPager
するタブレイアウト内にあるフラグメントをロードしますFragmentTransaction
。
ActionBar
v7 の v7でv4 フラグメントを使用していActionBarActivity
ます。
ロードされたすべてのフラグメントは、実際の使いやすさを保持する他のフラグメントを含むタブのみをロードするフラグメントです。このようなタブ読み込みフラグメントの例:
私が直面している問題は、バックスタックにあります。フラグメントがバックスタックに追加され、戻るボタンを押すと、アプリは希望どおりに前のフラグメントに戻り、タブのレイアウト自体は表示されますが、何も読み込まれていないようにタブの内容は空ですそのタブ。それが発生した場合、ナビゲーションドロワーでその画面を再度選択したときにのみ、タブのコンテンツをリロードすることができます。
onBackPressed
アクティビティでをオーバーライドしようとしました:
しかし、私が言ったように、前のフラグメントに戻っているようですが、そのフラグメント内のタブはフラグメントを再描画していません。
この問題を解決するにはどうすればよいですか?
バックスタックの元のフラグメントのタブ レイアウトは表示されますが、タブ内のフラグメントは表示されないため、タブのコンテンツを何らかの方法で更新して再描画する必要がある可能性はありますか? そんなことができるとしたら、どうすればいいですか?
android - バックスタックからフラグメントを削除する方法
5 つのフラグメント (ウィザード) を持つアクティビティがあります。
Success フラグメントに SubmitMore ボタンをテーピングした後、バックステージから Frag1、Frag2、および SubmitFrag を削除し、StartFrag に戻りたいと思います。どうやってするか?