問題タブ [android-nested-fragment]

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 に答える
3596 参照

android - Android FragmentTab ホストと Fragments 内の Fragments

次のような階層を持つアプリがあります。

すべてのフラグメント ビューがリソースから膨張しています。

アプリが起動すると、すべてが表示され、問題なく表示されます。最初のタブから別のタブに切り替えて再び戻ると、タブ 1 のビューを再作成しようとしてインフレ例外が発生します。

もう少し深く掘り下げると、これが起こっていることです:

  • 最初の読み込みで、スプリッター ビューを拡張すると、その 2 つの子フラグメントがフラグメント マネージャーに追加されます。
  • 最初のタブから切り替えると、ビューは破棄されますが、子フラグメントはフラグメント マネージャーに残ります。
  • 最初のタブに戻ると、ビューが再度膨張し、古い子フラグメントがまだフラグメント マネージャーにあるため、新しい子フラグメントが (膨張によって) インスタンス化されると例外がスローされます。

フラグメント マネージャーから子フラグメントを削除することでこの問題を回避し (Mono を使用しています)、例外なくタブを切り替えることができるようになりました。

だから私はいくつかの質問があります:

  1. 上記はこれを行う正しい方法ですか?
  2. そうでない場合、どのようにすればよいですか?
  3. いずれにせよ、タブを切り替えたときにビューステートが失われないように、インスタンスの状態を保存することはこれらすべてにどのように結びついているのでしょうか?
0 投票する
1 に答える
3527 参照

android - 置き換えられた ViewPager と BackStack のライフサイクル?

Android ViewPager のライフサイクルがめちゃくちゃになっていて、アプリの構造に何か問題があるのではないかと考え始めています。そのため、次のことができるかどうか確認をお願いします。

  • いくつかのタブを表示するアプリケーションがあります。これらのタブの 1 つは、2 つの ListFragments がある ViewPager を表示しています。これらの ListFragments は、ViewPager の onCreate イベントで作成されます。
  • ListFragments の 1 つのアイテムをクリックすると、ViewPagerFragment 全体が別のフラグメント (別の ListFrament) に置き換えられます。

ViewPager を新しい ListFragment に置き換えるために使用するコードは次のとおりです。

そこから、すべてがうまく機能しています。しかし、ユーザーが戻るボタンをクリックすると、次のような状況になります。

  • ViewPager は (onCreateView から) 正常にリロードされますが、内部の ListFragment は表示されません。私のListFragmentのオブジェクトはまだ生きているように見えますが、ビューを失ったようです.onCreateViewはそれを再作成するために呼び出されていません.

私の意図は、私がやろうとしていることが Android の考え方で問題ないかどうかを知ることであるため、今のところこれ以上コードを投稿することはありません。やりたいことをアーカイブするために、Android SDK と戦わなければなりませんか?

0 投票する
4 に答える
13272 参照

android - actionBar androidでFragmentからDialogFragmentを表示する方法

フラグメントで Tabs ActionBar を使用します。1 つのフラグメント内にボタンがあります。DialogFragmentボタンが押されたときに (フラグメント内に)を表示したい。どうやってやるの?

これは私のコードです

0 投票する
5 に答える
74508 参照

android - サポートライブラリを使用せずにAndroid4.0、4.1(<4.2)でネストされたフラグメントのベストプラクティス

4.0および4.1タブレット用のアプリを作成しています。このアプリでは、サポートライブラリ(不要な場合)を使用したくありませんが、4.xAPIのみを使用します。

したがって、私のターゲットプラットフォームは次のように非常に明確に定義されています:>=4.0および<=4.1

このアプリには、マルチペインレイアウト(2つのフラグメント、左側に1つ、右側に1つのコンテンツフラグメント)とタブ付きのアクションバーがあります。

これに似ています:

ここに画像の説明を入力してください

アクションバーのタブをクリックすると、「外側」のフラグメントが変更され、内側のフラグメントは2つのネストされたフラグメント(1.小さな左リストフラグメント、2。広いコンテンツフラグメント)を持つフラグメントになります。

フラグメント、特にネストされたフラグメントを置き換えるためのベストプラクティスは何でしょうか。ViewPagerはサポートライブラリの一部であり、このクラスに代わるネイティブの4.xはありません。私の意味では「非推奨」のように見えます。-http ://developer.android.com/reference/android/support/v4/view/ViewPager.html

次に、Android 4.2のリリースノートを読みましたChildFragmentManager。これは適切ですが、4.0と4.1をターゲットにしているため、これも使用できません。

ChildFragmentManager4.2でのみ利用可能です

残念ながら、Android開発者ガイド全体であっても、サポートライブラリなしでフラグメントを使用するためのベストプラクティスを示す良い例はほとんどありません。特にネストされたフラグメントに関しては何もありません。

だから私は疑問に思っています:サポートライブラリとそれに付属するすべてのものを使用せずに、ネストされたフラグメントを使用して4.1アプリを作成することは単純に不可能ですか?(Fragmentなどの代わりにFragmentActivityを使用する必要がありますか?) または、ベストプラクティスは何でしょうか?


私が現在開発中に抱えている問題は、まさにこの声明です。

Androidサポートライブラリもネストされたフラグメントをサポートするようになったため、Android1.6以降でネストされたフラグメントのデザインを実装できます。

注:レイアウトに。が含まれている場合、レイアウトをフラグメントに膨らませることはできません<fragment>。ネストされたフラグメントは、フラグメントに動的に追加された場合にのみサポートされます。

ネストされたフラグメントをXMLで定義するため、次のようなエラーが発生するようです。

現時点では、私は自分自身で結論を下しています。4.1でも、2.xプラットフォームをターゲットにしたくない場合は、スクリーンショットに示すようなネストされたフラグメントは、サポートライブラリなしでは不可能です。

(これは実際には質問というよりもウィキのエントリである可能性がありますが、他の誰かが以前に管理したことがあるかもしれません)。

アップデート:

役立つ答えは次のとおりです。フラグメント内部フラグメント

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

android - android.support.v4.app.Fragment: 未定義のメソッド getChildFragmentManager()

ActionBarSherlockandを使用しておりViewPageIndicator、ネストされたフラグメントを実装しようとしましたが、メソッドgetChildFragmentManager()は my で定義されていませんandroid.support.v4.app.Fragments

その他のエラーはなく、ABS と VPI は期待どおりに機能します。

サポート ライブラリ v13 は使用していません。最新バージョンを使用しており、プロジェクトをクリーンアップしました。通常android.app.Fragmentは文句を言いませんgetChildFragmentManager()

また、サポート ライブラリの依存関係 (ABS、VPI およびそれを参照するメイン プロジェクト内の android-support-v4.jar、または外部 jar としての android-support-v4.jar) の再配置を試みましたが、getChildFragmentManager()未定義のままです。

ただし、VPI を削除するとgetChildFragmentManager()機能しますが、もちろん VPI は機能しなくなります。したがって、依存関係に何か問題があるに違いありませんが、試すアイデアが不足しています。

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

0 投票する
4 に答える
16987 参照

android - FragmentTabHost からネストされたフラグメントへの参照を取得する

私のアプリケーションでは、withActivityを保持する を使用しているため、そのすべてのタブはです。FragmentFragmentTabHostnested Fragments

とともにActivityを保持する の内部では、を使用して添付されたものへの参照を取得できます。Fragmentnested FragmentonAttachedFragment()

しかし、nested Fragmentfromへの参照を取得する方法はFragmentTabHost?

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

android - フラグメントを更新する 設定変更から戻って表示する

私が達成しようとしているのは、誰かが設定から戻って設定を変更したときにビューを更新することです。これでうまくいくと思ったのですが、そうではありません。これを達成する方法についてのアイデアはありますか?

0 投票する
4 に答える
12926 参照

android - フラグメントを含む Android タブ付きダイアログを作成するには?

誰かが私に例を指摘したりTabbed Dialog、各タブのコンテンツがあるAndroidでシンプルなものを作成する方法を教えてもらえますFragmentsか? 私が見つけたすべての例/チュートリアルはフラグメントとタブに関するものですが、に固有のものはありませんDialogFragments

のドキュメントにFragmentTabHostは、 を使用して通常のフラグメント内にタブを作成する方法が示されていますgetChildFragmentManager()。これは、フラグメントが a の場合にも機能するはずですDialogFragmentが、試してみると次のようになります。

ビューを設定するための私のコードは次のとおりです(その後、に渡されAlertDialog.setView()ます):

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

android - TabFragment の ViewPager が 2 回目に読み込まれない

ViewPagerの一部であるフラグメントに があるアプリを作成しようとしていTabHostます。すべてがうまくいきます。タブバーがあり、タブを切り替えることができます。でタブに切り替えるとViewPager、すべてが正しく表示されます。

ただし、このタブを離れてこのタブに戻るとすぐにViewPager、コンテンツが表示されません。横に 2 回スクロールすると次の画像が表示され、2 回戻ると画像が読み込まれていることもわかります (おそらくoffscreenloaded)。

TabFragmentがそれに戻ったときに私のものが再インスタンス化されていることを確認してくださいViewPager

アプリのモックアップ