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

android - DialogFragment 内の ViewPager + FragmentPagerAdapter は、「IllegalArgumentException:No view found...」を取得します。

FragmentPagerAdapter (画像で構成される Fragments を提供する) によってコンテンツが指定される ViewPager がある FragmentDialog (ビュー階層にコンテンツとして追加されないダイアログとして作成および表示) を表示しようとしています。

FragmentActivity から ViewPager + FragmentPagerAdapter を表示する場合、コードは完全に機能しますが、FragmentDialog から実行すると次の例外が発生します。

「IllegalArgumentException: フラグメント SimpleFragment の ID 0x7f040077 のビューが見つかりません...」

これが私のコードです:

ダイアログを作成して表示するためのボタンを持つ SherlockFragmentActivity。

FragmentDialog:

これは非常に単純な MyFragmentPagerAdapter です。getItem() メソッドと nullPointer チェックのみを配置します。

そして最後に SimpleFragment:

詳細については、アダプターに渡されたコンテンツ (3 つの int を持つ int 配列) の長さがゼロの場合、アダプターはフラグメントを作成しようとしないため、ダイアログは正しく表示されますが空です (期待どおり)。インフレ時に SimpleFragment.onCreateView() で例外がスローされます。例外で参照される ID (見つからないため) は ViewPager の ID に対応し、R.layout.simple_fragment で適切に定義されています。

AlertDialog.builder を使用して Dialog をビルドし、Dialog() コンストラクターを使用して直接ビルドしようとしましたが、同じ動作が得られます。

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

android - サポート ライブラリ v4 リビジョン 11 を使用したネストされたフラグメント

今朝のサポート ライブラリの最後のリビジョン ( Android サポート パッケージ v4 リビジョン 11 ) は、ネストされたフラグメントをサポートすることになっています。

私のプロジェクトには、ViewPager を含むフラグメントがあり、この ViewPager にはいくつかのフラグメントが含まれています。

サポート ライブラリのFragmentManagerを使用するgetSupportFragmentManager()代わりに呼び出しています。getFragmentManager

問題は、次のようなクラッシュがまだ発生していることです。

私が間違っていることはありますか?または、サポートはネストされたフラグメントを実際にはサポートしていませんか?

私の取引は次のように単純です。

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

android - Nested Fragment (Android 4.2) を使用して ViewPager 内に Fragment を追加する方法

私は と を持っています、ViewPagerそれぞれが(または)Fragmentsを示しています。ListGrid

新しいAndroid API level 17(Jelly Bean 4.2) では、機能の 1 つにNested Fragmentsがあります。新しい機能の説明には次のように書かれています。

ViewPager を使用して左右にスワイプし、画面スペースの大部分を消費するフラグメントを作成する場合、各フラグメント ページにフラグメントを挿入できるようになりました。

したがって、私が正しく理解していれば、内部にViewPagerwith Fragments(たとえば内部にボタンを含む) を作成し、ユーザーがボタンを押すと、この新しい機能を使用して別のボタンを表示するFragmentことができます。ViewPager

これをいくつかの異なる方法で実装しようと朝を費やしましたが、うまくいきません...誰かがこれを実装する方法の簡単な例を追加できますか?

PS: 私はこの方法で、getChildFragmentManagerどのように機能するかを学ぶことにのみ興味があります。

0 投票する
18 に答える
46735 参照

android - Android 4.2: ネストされたフラグメントでのバックスタック動作

Android 4.2 では、サポート ライブラリがネストされたフラグメントをサポートしました。こちらを参照してください。私はそれをいじって、バックスタックとgetChildFragmentManager()に関する興味深い動作/バグを見つけました。getChildFragmentManager() および addToBackStack(String name) を使用する場合、戻るボタンを押しても、システムはバック スタックを前のフラグメントまで実行しません。一方、getFragmentManager()と addToBackStack(String name) を使用する場合、戻るボタンを押すと、システムは前のフラグメントに戻ります。

私にとって、この動作は予想外です。デバイスの戻るボタンを押すと、フラグメントが子のフラグメント マネージャーでバック スタックに追加された場合でも、バック スタックに最後に追加されたフラグメントがポップされることを期待しています。

この動作は正しいですか? この動作はバグですか? この問題の回避策はありますか?

getChildFragmentManager() を使用したサンプル コード:

getFragmentManager() を使用したサンプル コード:

0 投票する
7 に答える
35409 参照

java - 新しいネストされたフラグメント API で onActivityResult() が呼び出されない

Android のサポート ライブラリに含まれる新しいネストされたフラグメントAPI を使用しています。

ネストされたフラグメントで直面している問題は、ネストされたフラグメント (つまり、FragmentManager返された byを介して別のフラグメントに追加されたフラグメントgetChildFragmentManager()) が を呼び出すstartActivityForResult()場合、ネストされたフラグメントのonActivityResult()メソッドが呼び出されないことです。ただし、親フラグメントonActivityResult()とアクティビティの両方onActivityResult()が呼び出されます。

ネストされたフラグメントについて何かが欠けているかどうかはわかりませんが、説明されている動作は予期していませんでした。以下は、この問題を再現するコードです。誰かが私を正しい方向に向けて、私が間違っていることを説明していただければ幸いです。

test_nested_fragment_container.xml は次のとおりです。

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

android - ネストされたフラグメントとバック スタック

バック スタックは、Android でネストされたフラグメントとのやり取りをサポートしていますか?

もしそうなら、私は何を間違っていますか?私の実装では、戻るボタンは、このトランザクションをバック スタックに追加したという事実を完全に無視しています。ネストされたフラグメントの問題ではなく、私が何か間違ったことをしているだけであることを願っています。

次のコードは私のフラグメントの 1 つの中にあり、ネストされたフラグメントが現在表示されているものと新しいフラグメントを交換するために使用されます。

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

android - プログラムで (動的に) 追加されたフラグメントの getChildFragmentManager()?

getChildFragmentManager()プログラムで (動的に) 追加されたsを使用する (または「使用できますか」) 方法はFragment?

これが私の例です。

私は 1 MainActivity、 1 OuterFrag、 1 を持っていInnerFragます。によって動的に を追加OuterFragします。また、によって動的ににも を追加します。しかし、私は の子として正確に追加し、置き換えずに の新しい子にしたいと考えています。MainActivityFragmentManagerInnerFragOuterFragFragmentManagerInnerFragOuterFragOuterFragMainActivity

この階層を維持したい: MainActivity -> OuterFrag -> InnerFrag. したがって、MainActivity は常に OuterFrag を呼び出すことができます。

ただし、この階層から変更しないでください: この階層MainActivity -> OuterFragに変更MainActivity -> InnerFragするMainActivityと、OuterFrag.

これが私のコード例です。

MainActivity.java

activity_main.xml

OuterFrag.java

outer_frag.xml

InnerFrag.java

inner_frag.xml

現在、上記のコードはエラーなしで実行できます。しかし、実際にInnerFragは の新しい子として変化していMainActivityます。これは、Before: Object と After: Object が変更された 2 つの System Print Out ステートメントによって確認できます。でOuterFrag.java、ステートメントgetChildFragmentManager()の代わりにステートメントを実行するgetFragmentManager()と、次のランタイム エラーが発生します。

を使用するgetChildFragmentManager()ことは、理論的には正しいです。非プログラム的に追加されたフラグメントで使用できます (つまり、 を に変更し、 attribute を追加し、activity_main.xmlの最初のステートメントを削除します)。そして、正しい階層を維持しています: . しかし、元のフラグメント ( ) の単語は決して取り除くことはできません。<FrameLayout><fragment>android:name="com.example.frag.OuterFrag"getSupportFragmentManager()MainActivity.javaMainActivity -> OuterFrag -> InnerFragouter_frag.xml

結論として、常に参考OuterFragにしたい。そして、さまざまなsをロードするプレースホルダーとして機能しMainActivityたいと考えています。つまり、プログラムで (動的に) 追加されたときに、を呼び出したいのです。OuterFragInnerFraggetChildFragmentManager()OuterFrag

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

java - Android: 多数のフラグメントの 1 つ内での MapFragment の使用

私は検索して検索しましたが、誰もそれに完全に答えません。

Android プロジェクトの多数のフラグメントの 1 つで新しい MapFragment を使用する必要があるプロジェクトがあります。

これまでのところ、FB モバイル アプリのように使用しています。左側にメニューが表示され、ユーザーはアイテムを選択してフラグメントを表示できます。ここまで、探して探しました。完全で実行可能な答えはありません。

Android アプリの多くのフラグメントのフラグメント内に新しい Google MapFragment を表示できるサンプル コードやサンプル プロジェクトを見たいと思っています。

前もって感謝します。

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

android - ネストされた FragmentTabHost でタブ切り替え後にフラグメントが表示されない

フラグメントの 1 つのレイアウトに FragmentTabHost があります (parentFragment と呼びましょう)。ここで、parentFragment の onCreateView で、タブホストに入る各フラグメントをプログラムで初期化します。parentFragment が作成されると、すべてが正常に機能しているように見え、最初のタブのフラグメントが正しく表示されます。

しかし、一度タブを切り替えるとすぐに、フラグメントは消えます (タブホストの背景色は見えますが、tabcontent-container のコンテンツは見えません)。また、最初のフラグメントに戻ると、最初のフラグメントがなくなります。私のロギングが示すように、フラグメントは実際に作成されていますが、表示されません。

FragmentPagerAdapterでViewPagerも使用しようとしたため、フラグメントの(再)作成に関係していると思います。最初の 2 つのフラグメント (setOffscreenPageLimit() ==1 によりプリロードされた) をうまく切り替えることができましたが、それ以降に (再) 作成されたフラグメントも空白でした。

誰か考えはありますか??

これが私のコードの一部です:

親フラグメントの XML の抽出:

親フラグメントの XML の抽出:

サブタブのフラグメントでの単純なレイアウト インフレーション:

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

android - ViewPager を使用した ActionBarSherlock が、バックスタックに出入りするときに ViewPager フラグメントのライフサイクル メソッドを呼び出さない

ActionBarSherlock を使用するアプリケーションがあり、メイン フラグメント内には、いくつかのフラグメントを使用してリストのさまざまなオブジェクトを表示する ViewPager があります。

メインフラグメント:

ViewPagerAdapter:

この各フラグメント内に、ViewPager に表示する新しいリストを含む新しい Main フラグメントを作成し、コンテンツをこの新しいフラグメントに置き換えることができます。

ViewPager フラグメント:

これは、押し戻して前のメイン フラグメントがバックスタックから返されるまでは正常に機能します。

画面は空です (onCreateView が呼び出されないため、レイアウトは膨張しません)、ViewPager のフラグメントからのライフサイクル メソッドは、メイン フラグメントがバックスタックに入るときも、返されるときも呼び出されません。ViewPager のフラグメントで呼び出される唯一のメソッドは setMenuVisibility() であるため、そこにあるコードのみが実行されます。

誰でもこれを修正する方法を知っていますか?なぜこれが起こるのですか?

問題があるかどうかはわかりませんが、Android 2.3 以降をサポートする必要があります。