問題タブ [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 投票する
3 に答える
16331 参照

android - フラグメント/ツールバーで戻るナビゲーション

私は今これで頭を悩ませています.... 私はActionBarActivityイニシャルをロードするを持っていますFragment- 元のメニューはアクティビティ内で膨らみます。これで、アイテムが選択されたときに別のフラグメントをロードし、これをバックスタックに追加するナビゲーション バーができました。

これを行うとき、設定したいことがいくつかあります。

  1. ホームをアップ インジケーターとして設定する
  2. メイン アクティビティのオプション メニューを無効にする
  3. セットには、フラグメントに対して true のオプションがあります
  4. アップ インジケーターが元のフラグメントに正しく戻ることを確認します。

かなり奇妙なことが起こっています - アップインジケーターは一度だけ表示され、戻るボタンとして動作しません.新しいメニューを無効にして膨らませましたが、新しいメニューは元のアクティビティメニューに追加されます.

編集:menu.clear()わかりました、追加の問題を解決しました-メソッドに追加するのを忘れましたonCreateOptionsMenu

私のナビゲーション ドロワー レイアウトにはonClick、別の Fragment の読み込みをトリガーするすべてのメニュー項目へのメソッドがあります。

トグルホーム:

アイテムがトリガーされるonCreateと、invalidate と hasOptions コードが含まれます。

次にonCreateOptionsMenu、別のメニュー レイアウトを拡張します (設定と呼ばれる 1 つの項目を含みます)。

前述のように、これは部分的に 1 回しか機能しません。最初にアイテムを使用してフラグメントをロードすると、戻るアイコンが表示されますが、機能しません (これはonOptionsItemSelected、ホーム アイテムのプレスをチェックするために設定されています。何もしません)。戻るボタンを押すと、正しい場所に戻ります。ただし、戻ると、コードが実行されても戻る矢印が表示されなくなりましたonCreate

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

android - ActionBarActivity と getSupportFragmentManager を使用すると BackStack が壊れる

アプリケーションには次のワークフローがあります。

アクティビティ 1 (ListView) -> アクティビティ 2 (フラグメントを読み込む ListView) -> フラグメント 1 -> フラグメント 2。

すべてうまくいきました。Fragment 2 に進み、[戻る] ボタンを押して各ステップを後方にトラバースすることができました。

ある時点で、ActionBar を追加する必要がありました。Google に代わっていくつかの奇妙なプログラミングが原因で、android.support.v7.app.ActionBarActivity をインポートする ActionBarActivity を拡張する必要があります。これには、すべての Fragment マネージャーを android.support.v4.app をインポートする「サポート」に変更する必要があります。フラグメントマネージャー。

その結果、ワークフロー全体で ActionBar が表示されますが、Fragment 2 にしか進むことができません。[戻る] ボタンを押すと、アクティビティ 1 が表示され、BackStack はありません。

では、ActionBar と BackStack を持つアクション/フラグメントを持つことは不可能ですか、それとも別の理由で BackStack が壊れているのでしょうか?

どんな助けでも大歓迎です。

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

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

android - ネストされた/子フラグメントを使用した Android バックスタック

ネストされたフラグメントのバックスタックの方法に問題があり、提供されたヘルプに最も感謝しています。

フラグメント A とフラグメント B があります。フラグメント A には別のフラグメント (ButtonFragment) が含まれています。アクティビティの onCreate で、フラグメント A をロードし、フラグメント B に切り替えます。(バックスタックから) フラグメント A に戻ると、次のエラーが発生します。

例外ディスパッチ終了シグナル。

E/MessageQueue-JNI(6330): MessageQueue コールバックの例外: handleReceiveCallback

E/MessageQueue-JNI(6330): android.view.InflateException: バイナリ XML ファイルの 16 行目: クラス フラグメントの拡張中にエラーが発生しました

...

原因: java.lang.IllegalArgumentException: バイナリ XML ファイル 16 行目: ID 0x7f080000、タグ null、または親 ID 0x0 が com.example.fragmentnavigation.MainActivity$ButtonFragment の別のフラグメントと重複しています

サブフラグメントがなければ、ナビゲーションは機能します。ChildFragmentManager の処理を​​追加する必要があるかもしれませんが、何をどこで処理するのかわかりません。あなたが私を助けてくれることを願っています。

メインレイアウト

フラグメント A レイアウト

主な活動

フラグメントA

ボタンフラグメント


@arun-kumar に感謝する特別なソリューション

フラグメントに関する非常に優れた概要 https://github.com/codepath/android_guides/wiki/Creating-and-Using-Fragments

フラグメント A レイアウト

フラグメント A の onCreate

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

android - バックプレス後のナビゲーションドロワーの更新

Androidを使用してアプリケーションを実装していますNavigation Drawerが、問題があります。

Android Studio のテンプレート (ナビゲーション ドロワーを備えた Android アプリ) から開始し、新しいセクション - 設定を追加しました。設定ボタンをクリックすると、ユーザーは新しいアクティビティに移動し、ユーザーはアクションバーの「上へ」ボタンを押すか (これは完全に機能します)、物理的な戻るボタンを押すことで戻ることができます。その部分はあまりうまくいきません。

「上へ」ボタンを押してナビゲーションバーを開くと、マイページがハイライト(選択)されています。しかし、[戻る] ボタンを使用してナビゲーション ドロワーを開くと、ユーザーがホームページではなくそのページを表示しているかのように、[設定] 項目が選択されます。

これは、Navigation Drawer フラグメントが更新されておらず、この問題を解決する方法が見つからないためです。私が望むのは、Navigation Drawer を再作成することです (これは、「上」ボタンを押したときに起こると思います)。どうすればこれを実現できるか知っていますか?

私はこれに基づいて解決策に取り組み始めました:

しかし、UI全体を更新するためにそこに何を書くべきかわかりません。(onCreate() を呼び出して実験しましたが、あまりにも醜く、正しい方法ではありません)。

助言がありますか?

アップデート:

別のアクティビティから BACK を押すと、onBackStackChanged イベントは送信されません。現在のアクティビティのフラグメントのみ。

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

android - フラグメントバックスタック、アンドロイド?

私のアクティビティはナビゲーション ドロワーで構成されており、現在、左側のメニューに 5 つのオプションがあります。これはすべて断片的に開きます。

すべてのフラグメントのスタックを保持する方法を探しているので、ユーザーが戻るボタンを押すと、前のフラグメントに移動します。

Like-Activity は、対応するフラグメント F1、F2、F3、F4、F5 を持つ 5 つのオプション menu1、menu2、menu3、menu4、menu5 を持つドロワー メニューで構成されます。

ユーザーが menu1 を押すと、F1 に転送されます。次に menu2 を押し、次に menu4 を押します。

ユーザーが F4 にいるときにボタンを押すと、アクティビティまたはアプリを終了するのではなく、F2 に移動する必要があります。

どのように実装できるか、例またはサンプル コードを優先します。

現在このコードを使用していますが、役に立ちません

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

android - サイクリック フラグメント バックスタック

アプリに 5 つのフラグメントがあります。バックスタックを使用しています。フラグメントを開くと、バックスタックに追加されました。

[フラグメント1]→[フラグメント2]→[フラグメント3]→[フラグメント4]→[フラグメント5]

そして、戻るボタンをクリックすると、2つの最新のフラグメントを周期的に開く必要があります。

[フラグメント4]→[フラグメント5]→[フラグメント4]→[フラグメント5]→[フラグメント4]→[フラグメント5]

出来ますか?

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

android - Android ViewPager Fragment - 状態の維持

FragmentStatePagerAdapter に裏打ちされた ViewPager があります。このアプリは、「ページ」ごとにフラグメントを持つ単一のアクティビティ アプリです。現在、ViewPager を使用して製品のカテゴリを表示しています。各カテゴリには、すべての製品を一覧表示する ListView (または RecyclerView) が含まれます。ユーザーが製品をタップすると、viewpager フラグメントが ProductDetailsFragment に置き換えられます。これはすべてうまくいきますが、ユーザーが押し戻すと、すべてのカテゴリ フラグメントがリロードされます。それを回避する方法はありますか?問題は、ユーザーが 3 ページ以上のページネーションを行う必要がある場合、スクロール状態を維持したいということです。