LinearLayoutを親クラスとするクラスでViewが生成されるタイミングを知りたい
ArrayAdapter
を親クラスとするクラスでListView
に表示させたいView
を
以下のようにして生成しています。
View view = inflater.inflate(R.layout.photo_item_layout, container, false);
PhotoItemView photoItemView=new PhotoItemView(view);
view.setTag(photoItemView);
PhotoItemView
はViewHolder
的な役割などを持たすために作成したクラスです。
現状一部View
の見た目変更もさせているので、ただのViewHolder
ではないです。
(現在試行錯誤中なので、設計が良いかどうかはとりあえず気にしない方向でお願いします。)
ここで生成されるview
はLinerLayout
を親クラスとするPhotoItemViewGroup
というクラスのView
なのですが、そこまでダウンキャストする必要もないのでしていません。
そもそもなぜPhotoItemViewGroup
を作成しているかというと、
inflate
したらListView
の1アイテムがまとまっているので、
それを新たなクラスにしまわずにそれ自体を操作すれば良いのでは?と思ったからです。
1アイテムはImageView
・TextView
・Button
の3つで構成されています。
PhotoItemView
ではコンストラクタでfindViewById
から各種View
の取得と記憶をやらせていて、あとでAdapter
で各種View
を取得する時も問題はありません。
PhotoItemViewGroup
ではコンストラクタで取得等をやらせるとnull
になっていますが、Adapter
でPhotoItemView
から取得する処理の前後にfindViewById
するとうまくいきます。
Adapter
でPhotoItemView
から各種View
を取り出す処理はPhotoItemViewGroup
でonLayout
が呼ばれるよりも前に行われていたのですが、onLayout
はView
が生成される時に呼び出されるわけではなくレイアウトの変更の時のみでしょうか?
また、実際にView
が生成される(た)タイミングで呼び出されるメソッドがあれば教えてください。