問題タブ [fragment-lifecycle]

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

android - 回転時と背面時の MapView の状態の復元

バックグラウンド

新しい Google Maps API でいくつかの問題が発生した、または発生した大規模なアプリケーションがあります。別の質問で説明しようとしましたが、複雑すぎるように思われるため、新しいプロジェクトをできるだけ単純に開始し、問題を再現することにしました。それで、ここにあります。

状況

使っFragmentsていて中に入れたいMapView。使いたくないMapFragment。私が用意したサンプル プロジェクトはあまり美しくないかもしれませんが、できる限りシンプルにするように努め、元のアプリのいくつかの要素 (再び簡略化) を含める必要がありました。プログラムで追加されたものと、その中Activityに私のカスタムFragmentがあります。MapViewMapはいくつかのポイント/ が含まれていますMarkers。をクリックするとMarkerInfoWindowが表示され、クリックすると、コンテンツに次のFragment(replace()機能付きで) が表示されます。

問題点

私が持っている2つの問題があります:

  1. 画面の回転が表示されるMapと、カスタムクラスでエラーが発生します。その理由と意味がわかりません。MarkersClass not found when unmarshallingMyMapPoint

  2. をクリックしてMarkerからをクリックしますInfoWindow。この後、ハードウェアの戻るボタンを押します。Mapこれで、ポイントがなくMarkers、中心にあることがわかります0,0

コード

主な活動

activity_main.xml

map_fragment.xml

マイマップフラグメント

他のファイルを確認する必要がある場合は、お知らせください。ここでAndroidManifest.xml完全なプロジェクトを見つけることができます。独自の Maps API KEY をファイルに入れるだけです。

編集

例をさらにシンプルにして、上記のコードを更新しました。

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

android - ユーザーが「終了」したときのフラグメントのライフサイクル

フラグメントの束を表示/非表示にする主なアクティビティがあります。最初に、ユーザーをログインさせるログイン アクティビティがあります。ユーザーがホーム ボタンまたはマルチタスク ボタンを押すと、アプリはタイマーを開始し、(タイマーが切れた後) ユーザーを自動的にログアウトさせます。これは、ユーザーがアプリに戻ったとき (タイマーが切れた -> ログアウトしたとき)、またはアプリ内で何もしていないときに発生する可能性があります。

フラグメントのライフスタイル メソッドに関して、ユーザーがホーム/マルチタスク ボタンを押すと、正確には何が呼び出されますか? 私の簡単なテストでは、ユーザーが終了したときに画面上のフラグメントに関係なく、フラグメント マネージャーの onPause の最初のフラグメントが毎回呼び出されるようです。

これについてどうすればいいですか?

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

android - add() と replace() と Fragment のライフサイクルの違い

私のプログラムには、Fragment1、Fragment2、....->Fragment6 の 6 つのフラグメントがあります。

add() および replace() ステートメントを使用してフラグメントを切り替え、ライフサイクルを追跡します。

Fragment1を追加Fragment2を追加Fragment3を追加Fragment4を追加Fragment5を追加Fragment6を置換

ライフサイクルを示す log-cat (追跡用に onCreate、onCreateView、onDestroyView、onDestroy にいくつかの printf ポイントがあります)


鬼ごっこ __ _ __ _ _ __ _ __ テキスト_

Fragment1_ _ _ _ ___ _onCreate

Fragment1_ _ _ _ ___ _onCreateView

フラグメント1_ _ _ _ ___ _フラグメント 2 を追加

Fragment2_ _ _ _ ___ _onCreate

Fragment2_ _ _ _ ___ _onCreateView

フラグメント2_ _ _ _ ___ _フラグメント 3 を追加

Fragment3_ _ _ _ ___ _onCreate

Fragment3_ _ _ _ ___ _onCreateView

フラグメント3_ _ _ _ ___ _フラグメント 4 を追加

Fragment4_ _ _ _ ___ _onCreate

Fragment4_ _ _ _ ___ _onCreateView

フラグメント4_ _ _ _ ___ _フラグメント5を追加

Fragment5_ _ _ _ ___ _onCreate

Fragment5_ _ _ _ ___ _onCreateView

フラグメント5 __ _ __ _ _ Fragment6 を置き換えます

フラグメント1 __ _ __ _ _ onDestroyView

フラグメント3 __ _ __ _ _ onDestroyView

フラグメント5 __ _ __ _ _ onDestroyView

Fragment6_ _ _ _ ___ _onCreate

Fragment6_ _ _ _ ___ _onCreateView


私の質問:

Fragment5 が Fragment6 に置き換えられた後、 Fragment1 & 3 & 5 のビューが破棄されるのはなぜですか?

Fragment2 & 4 で何が起こっていますか?

Fragment2 & 4 が Fragment1 & 3 &5 としてのビューを破棄しないのはなぜですか?

add() および replace() メソッドを呼び出すときのフラグメントのライフサイクルについて完全に理解するのを手伝ってください。


addFragment および replaceFragment メソッドを更新します。

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

android - Android フラグメント isRemoved メソッド

isRemovingAndroidにはフラグメントのメソッドがあります。ドキュメントによると、フラグメントが削除中の場合にのみ通知されます。しかし、フラグメントが既に削除されているかどうかを知る必要があります。これを見つける方法はありますか?APIレベル11を使用しています。

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

nullpointerexception - ListFragment 内にあるアダプターで notifyDataSetChanged() を呼び出すと、NullPointerException が発生しますか?

序章:

私は次の設定をしています:

  1. MainActivityメソッドonNewIntentとを備えた AprocessNewIntentは、MainActivityも実装していFragmentActivityます。実装するタブ付きフラグメントがありますFragmentList

  2. 新しいlistaddactivityものを生み出す活動Parcelable listControlObject

  3. アクティビティはlistaddactivity、パーセルを運ぶインテントを送信し、パーセルはとクラス内でMainActivitylistControlObjectを再構築します。onNewIntentprocessNewIntent

  4. でも; メソッドに を取り込むと、新しいファインが構築されintentます。しかし、クラスでメソッドを呼び出すと。onNewIntentlistControlObjectadapter.notifyDataSetChangedFragmentList

Logcat エラー:

onNewIntentメソッド:

processNewIntentメソッド:

nullpointerexception をスローする特定の行:

ListFragmentクラス: