問題タブ [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.
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() コンストラクターを使用して直接ビルドしようとしましたが、同じ動作が得られます。
android - サポート ライブラリ v4 リビジョン 11 を使用したネストされたフラグメント
今朝のサポート ライブラリの最後のリビジョン ( Android サポート パッケージ v4 リビジョン 11 ) は、ネストされたフラグメントをサポートすることになっています。
私のプロジェクトには、ViewPager を含むフラグメントがあり、この ViewPager にはいくつかのフラグメントが含まれています。
サポート ライブラリのFragmentManagerを使用するgetSupportFragmentManager()
代わりに呼び出しています。getFragmentManager
問題は、次のようなクラッシュがまだ発生していることです。
私が間違っていることはありますか?または、サポートはネストされたフラグメントを実際にはサポートしていませんか?
私の取引は次のように単純です。
android - Nested Fragment (Android 4.2) を使用して ViewPager 内に Fragment を追加する方法
私は と を持っています、ViewPager
それぞれが(または)Fragments
を示しています。List
Grid
新しいAndroid API level 17
(Jelly Bean 4.2) では、機能の 1 つにNested Fragmentsがあります。新しい機能の説明には次のように書かれています。
ViewPager を使用して左右にスワイプし、画面スペースの大部分を消費するフラグメントを作成する場合、各フラグメント ページにフラグメントを挿入できるようになりました。
したがって、私が正しく理解していれば、内部にViewPager
with Fragments
(たとえば内部にボタンを含む) を作成し、ユーザーがボタンを押すと、この新しい機能を使用して別のボタンを表示するFragment
ことができます。ViewPager
これをいくつかの異なる方法で実装しようと朝を費やしましたが、うまくいきません...誰かがこれを実装する方法の簡単な例を追加できますか?
PS: 私はこの方法で、getChildFragmentManager
どのように機能するかを学ぶことにのみ興味があります。
android - Android 4.2: ネストされたフラグメントでのバックスタック動作
Android 4.2 では、サポート ライブラリがネストされたフラグメントをサポートしました。こちらを参照してください。私はそれをいじって、バックスタックとgetChildFragmentManager()に関する興味深い動作/バグを見つけました。getChildFragmentManager() および addToBackStack(String name) を使用する場合、戻るボタンを押しても、システムはバック スタックを前のフラグメントまで実行しません。一方、getFragmentManager()と addToBackStack(String name) を使用する場合、戻るボタンを押すと、システムは前のフラグメントに戻ります。
私にとって、この動作は予想外です。デバイスの戻るボタンを押すと、フラグメントが子のフラグメント マネージャーでバック スタックに追加された場合でも、バック スタックに最後に追加されたフラグメントがポップされることを期待しています。
この動作は正しいですか? この動作はバグですか? この問題の回避策はありますか?
getChildFragmentManager() を使用したサンプル コード:
getFragmentManager() を使用したサンプル コード:
java - 新しいネストされたフラグメント API で onActivityResult() が呼び出されない
Android のサポート ライブラリに含まれる新しいネストされたフラグメントAPI を使用しています。
ネストされたフラグメントで直面している問題は、ネストされたフラグメント (つまり、FragmentManager
返された byを介して別のフラグメントに追加されたフラグメントgetChildFragmentManager()
) が を呼び出すstartActivityForResult()
場合、ネストされたフラグメントのonActivityResult()
メソッドが呼び出されないことです。ただし、親フラグメントonActivityResult()
とアクティビティの両方onActivityResult()
が呼び出されます。
ネストされたフラグメントについて何かが欠けているかどうかはわかりませんが、説明されている動作は予期していませんでした。以下は、この問題を再現するコードです。誰かが私を正しい方向に向けて、私が間違っていることを説明していただければ幸いです。
test_nested_fragment_container.xml は次のとおりです。
android - ネストされたフラグメントとバック スタック
バック スタックは、Android でネストされたフラグメントとのやり取りをサポートしていますか?
もしそうなら、私は何を間違っていますか?私の実装では、戻るボタンは、このトランザクションをバック スタックに追加したという事実を完全に無視しています。ネストされたフラグメントの問題ではなく、私が何か間違ったことをしているだけであることを願っています。
次のコードは私のフラグメントの 1 つの中にあり、ネストされたフラグメントが現在表示されているものと新しいフラグメントを交換するために使用されます。
android - プログラムで (動的に) 追加されたフラグメントの getChildFragmentManager()?
getChildFragmentManager()
プログラムで (動的に) 追加されたsを使用する (または「使用できますか」) 方法はFragment
?
これが私の例です。
私は 1 MainActivity
、 1 OuterFrag
、 1 を持っていInnerFrag
ます。によって動的に を追加OuterFrag
します。また、によって動的ににも を追加します。しかし、私は の子として正確に追加し、置き換えずに の新しい子にしたいと考えています。MainActivity
FragmentManager
InnerFrag
OuterFrag
FragmentManager
InnerFrag
OuterFrag
OuterFrag
MainActivity
この階層を維持したい: 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.java
MainActivity -> OuterFrag -> InnerFrag
outer_frag.xml
結論として、常に参考OuterFrag
にしたい。そして、さまざまなsをロードするプレースホルダーとして機能しMainActivity
たいと考えています。つまり、プログラムで (動的に) 追加されたときに、を呼び出したいのです。OuterFrag
InnerFrag
getChildFragmentManager()
OuterFrag
java - Android: 多数のフラグメントの 1 つ内での MapFragment の使用
私は検索して検索しましたが、誰もそれに完全に答えません。
Android プロジェクトの多数のフラグメントの 1 つで新しい MapFragment を使用する必要があるプロジェクトがあります。
これまでのところ、FB モバイル アプリのように使用しています。左側にメニューが表示され、ユーザーはアイテムを選択してフラグメントを表示できます。ここまで、探して探しました。完全で実行可能な答えはありません。
Android アプリの多くのフラグメントのフラグメント内に新しい Google MapFragment を表示できるサンプル コードやサンプル プロジェクトを見たいと思っています。
前もって感謝します。
android - ネストされた FragmentTabHost でタブ切り替え後にフラグメントが表示されない
フラグメントの 1 つのレイアウトに FragmentTabHost があります (parentFragment と呼びましょう)。ここで、parentFragment の onCreateView で、タブホストに入る各フラグメントをプログラムで初期化します。parentFragment が作成されると、すべてが正常に機能しているように見え、最初のタブのフラグメントが正しく表示されます。
しかし、一度タブを切り替えるとすぐに、フラグメントは消えます (タブホストの背景色は見えますが、tabcontent-container のコンテンツは見えません)。また、最初のフラグメントに戻ると、最初のフラグメントがなくなります。私のロギングが示すように、フラグメントは実際に作成されていますが、表示されません。
FragmentPagerAdapterでViewPagerも使用しようとしたため、フラグメントの(再)作成に関係していると思います。最初の 2 つのフラグメント (setOffscreenPageLimit() ==1 によりプリロードされた) をうまく切り替えることができましたが、それ以降に (再) 作成されたフラグメントも空白でした。
誰か考えはありますか??
これが私のコードの一部です:
親フラグメントの XML の抽出:
親フラグメントの XML の抽出:
サブタブのフラグメントでの単純なレイアウト インフレーション:
android - ViewPager を使用した ActionBarSherlock が、バックスタックに出入りするときに ViewPager フラグメントのライフサイクル メソッドを呼び出さない
ActionBarSherlock を使用するアプリケーションがあり、メイン フラグメント内には、いくつかのフラグメントを使用してリストのさまざまなオブジェクトを表示する ViewPager があります。
メインフラグメント:
ViewPagerAdapter:
この各フラグメント内に、ViewPager に表示する新しいリストを含む新しい Main フラグメントを作成し、コンテンツをこの新しいフラグメントに置き換えることができます。
ViewPager フラグメント:
これは、押し戻して前のメイン フラグメントがバックスタックから返されるまでは正常に機能します。
画面は空です (onCreateView が呼び出されないため、レイアウトは膨張しません)、ViewPager のフラグメントからのライフサイクル メソッドは、メイン フラグメントがバックスタックに入るときも、返されるときも呼び出されません。ViewPager のフラグメントで呼び出される唯一のメソッドは setMenuVisibility() であるため、そこにあるコードのみが実行されます。
誰でもこれを修正する方法を知っていますか?なぜこれが起こるのですか?
問題があるかどうかはわかりませんが、Android 2.3 以降をサポートする必要があります。