0

私の断片のonCreateView()のレイアウトを膨らませています。このレイアウトにはカスタムビューが含まれています。今度はdocumentationonActivityCreated()は、フラグメントのアクティビティが作成され、このフラグメントのビュー階層がをインスタンス化したときに呼び出されると ""と表示されます。これは、レイアウトが膨らんでおり、レイアウト内のビューがonActivityCreated()の前に作成されていることを意味します。onActivityCreated()の前または後にonDraw()が呼び出されていますか?

だから、これはビューのonLayout()onSizeChanged()onDraw()方法がonActivityCreated()前に呼び出され意味ですか?

+0

なぜ単にメソッド呼び出しをログに記録しませんか? :) – Onik

+0

これは、ビューのライフサイクルがフラグメントのライフサイクルとともにどのように機能するかを理解するために最終的に行ったことです。私はちょうど私の自身の参照のために、参照のためのログを置く:) – Henry

答えて

1

NO

onActivityCreated()が最初に呼び出されます。 onSizeChanged(),onLayout()およびonDraw()は、後に呼び出される。 「ビュー階層のインスタンス化」の意味は、ビューが作成され(それぞれのコンストラクタが呼び出されます)、findViewById()を使用してビューへの参照を取得できることです。それがすべてです。

この意味は?つまり、widthまたはheightのビューをonActivityCreated()に取得できないということです。それは単に以下

0は、メソッドが呼び出される順序で返します:

1 - >FragmentからonCreateView()
2 - >View               - CustomView() //コンストラクタ
3 - >Fragment - onViewCreated()
4 - >Fragment - onActivityCreated()
5 - >FragmentからonResume()
6 - >View              からonMeasure()
7 - >View              からonSizeChanged()
8 - >View              からonLayout()
9 - >View              からonDraw()

関連する問題