Androidのフラグメント(Fragment)にはActivityとは異なる独自のライフサイクルメソッドがあります。
その中で、ひっつき元のActivityのonCreateメソッドが完了した際に呼び出されるonActivityCreatedメソッドというのが存在し、Fragment上のViewの操作や、LiveDataの監視(observe)等はこのメソッド内で行うことがGoogle先生の公式リファレンスやサンプルコードでもなされていました。
ところが、なんとこのonActivtyCreatedメソッドがFragmentのバージョン1.3.0以降は非推奨となりました(現時点の安定版は1.2.5のようなので、そのうち非推奨となります)。
onActivityCreated()
メソッドは非推奨になりました。フラグメントのビューをタッチするコードはonViewCreated()
(onActivityCreated()
の直前に呼び出される)、他の初期化コードはonCreate()
で実行する必要があります。アクティビティのonCreate()
が完了した際にコールバックを受け取るには、onAttach()
のアクティビティのLifecycle
にLifeCycleObserver
を登録し、onCreate()
のコールバックを受け取ったら削除する必要があります。 (b/144309266)
https://developer.android.com/jetpack/androidx/releases/fragment#1.3.0-alpha02
じゃあ、どうしたらいいのかというと、
原則onActivityCreatedメソッドで行っていたことは、onViewCreatedメソッドで行えばいい
ことのようです。
Google先生からのissue trackerにもそのような回答がなされています。
(Fragment上のViewの操作はonViewCreatedでいいよ)
(LiveDataの監視もonViewCreatedでいいよ)
(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)