問題タブ [fragmentmanager]

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 投票する
0 に答える
1380 参照

android - FragmentManager からのフラグメントのリーク

Fragment リークに苦しんでいますが、それを処理する方法がわかりません:

FragmentActivity (私はサポート lib v4 を使用しています) に 2 つのボタンがあります: 前後。4 番目のボタンは長いアニメーションでフラグメントをバックスタックに追加し、戻るボタンはバックスタックからフラグメントをポップします。

4 番目のボタン クリック リスナーのコード:

戻るボタンのクリック リスナーの場合:

アニメーションの進行中に戻るボタンを押してデバイスを回転させると、回転後に視覚的にすべて問題ないように見えますが、前のフラグメントがリークされます。Fragment の ctor や onSaveInstanceState() などにブレークポイントを設定することで、それを知ることができます。そうあるべきではないとき、それは各ローテーションでそれになります。

私は何を間違っていますか?

編集: この問題は、ネイティブ フラグメント、Android 4.0.3 を使用しても解決しません。

0 投票する
0 に答える
1878 参照

android - 初めてアクティビティをロードしたときに FragmentTransaction.add() が正しく機能しない

ユーザーがリストの製品をクリックするたびに開く製品詳細ページに取り組んでいます。ページの上部に製品画像があり、画像の下に 3 つのタブがあり、タブの下にフラグメント コンテナーがあり、タブを切り替えます。

問題:初めてアクティビティをロードすると、showFragment(..)メソッドが呼び出さfragment_containerれ、InfoFragment が読み込まれます。次に別のタブをクリックしてshowFragment()メソッドを再度呼び出すと、コンテナが空白になります。面白いことに、リストに戻って同じ製品をもう一度クリックすると、infoFragment以前と同じようにコンテナに読み込まれますが、タブをクリックするとバターのように切り替わります (問題なし)。何がうまくいかないのですか??

これは、onCreate()開始時に infoFragment を表示するために呼び出すメソッドです。

別の (2 番目の) タブをクリックすると、同じメソッドが異なるパラメーターで呼び出されます。

そしてshowFragment(...)方法:

コンテナーの XML:

コードをデバッグしようとしましたtransaction.add(resId, fragment, tag)が、タブを切り替えるとメソッドが呼び出されますが、コンテナーが空白になります。次に、詳細ページを閉じて再度開始すると、メソッドが呼び出され、コンテンツが表示されます...別の製品を試してみると、戻ってもう一度クリックするまでフラグメントが表示されません

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

android - フラグメントに SimpleDialogFragment メッセージ アラートを表示する

次のように、FragmentActivity から拡張された Main アクティビティがあります。

次のように、2 つのフラグメントを使用します。

そして、これは CustomFragmentAdapter クラスです:

このライブラリを使用してアラート メッセージを表示しています: https://github.com/inmite/android-styled-dialogs

secondtab フラグメントに表示される正または負のボタンを押しても、何も起きないのはなぜですか?

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

android - 戻るボタンを押したときに前のフラグメントに移動する

フラグメント クラスがあります。そのクラスでは、グリッドビュー アイテムをクリックして別のフラグメント クラスに移動できます。戻るボタンを押して元のクラスに戻るにはどうすればよいですか。

例 :TheaterFragment クラス --->Gridview ---->gridview 内の項目をクリック ---> TheaterDetailsFragment

TheaterDetailsFragment から戻るボタンを押して、再び TheaterFragment クラスに戻りたいです。

前もって感謝します

TheaterFragment クラス

TheaterDetailFragment

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

android - NoSaveStateFrameLayout - すでに親があります

フラグメントの削除/追加/置換を操作しようとしています。同じフラグメント クラス (同じインスタンスではない) を削除して再度追加しようとすると、問題が発生します。

アクティビティ全体をクリアします。

フラグメントの新しいインスタンスを追加します。

これは初めてうまく機能し、アプリケーションの他のすべての画面でもうまく機能しますが、画面を再作成しようとすると、たとえば、このロジックを再度呼び出し、すべてのフラグメントを削除し、これらのフラグメントの新しいインスタンスを追加します。次のエラーが発生します。

フラグメントに ViewPager ビューがある場合にのみ発生するため、これは奇妙です。これまでのところ、このロジックは正常に機能します。NoSaveStateFrameLayoutには既に親があり、他のビューがないため、このエラーがスローされるのは奇妙なことです。 ...

私はこれを試しました:

しかし、短いデバッグの後、 NoSaveStateFrameLayoutのインスタンスが複数あり、削除できたインスタンスを削除しても、例外の原因となったインスタンスとは異なることがわかりました。

それを解決する方法はありますか?

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

android - android - アクティビティから終了を呼び出すと、ホストされているフラグメントが破棄されますか?

「フラグメント B」をホストする「アクティビティ A」があります。A.finish() を呼び出すと、「フラグメント B」が破棄されることを確認してください。フラグメント B は、すでにフラグメント マネージャーに追加されています。フラグメントがサブ アクティビティであることは認識していますが、フラグメント マネージャーに Ondestroy でフラグメントをリリースするように指示する必要がありますか、それともすべて処理されていますか?

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

android - メインスレッドの遅延後にフラグメントをロードする

左側のメニューである NavigationDrawer があります。このボタンのボタンをタッチすると、次のような新しいフラグメントがロードされます。

カメラ インスタンスを使用するフラグメントがあります。フラグメントは他のフラグメントよりも読み込みが遅くなります。他のフラグメントのようにカメラ フラグメントを読み込むと、アプリがゆっくりとフリーズするため、メイン アクティビティにプログレス バーを追加したいと考えています。カメラ フラグメントが読み込まれると、コールバックを使用して progressView を削除します。

そうするために、進行状況バーを表示し、遅延後にフラグメントをロードします:

カメラ フラグメントは 2 秒後に読み込まれ、正常に動作します。問題は、新しいフラグメントをロードしたいときに、画面上にあるのはまだカメラフラグメントであり、フラグメントがカメラフラグメントの下に置き換えられることです。Runnable タスクを削除し、他のフラグメントと同じようにカメラ フラグメントをロードしても問題はありません。他のフラグメントに切り替えることができます。

問題はRunnableタスクとフラグメントマネージャーにあると思いました。

何か案は ?ありがとう。

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

android - NullPointerException getSupportFragmentManager() with Facebook onSessionStateChange

を使用しFacebook SDKてFBログインを行っています。NullPointerExceptionFacebook のログインから戻ったときにランダムに受け取ることがあります。

NPE は私の回線にあります。

私のFBログインは単一Fragmentです。ユーザーが FB にログインして成功すると、Fragment別のユーザーに変更されます。この NPE を取得するのはなぜですか?

Stacktrace (完全ではありませんが、重要な行)