ArrayAdapterを親クラスとするクラスでListViewに表示させたいView
以下のようにして生成しています。

View view = inflater.inflate(R.layout.photo_item_layout, container, false);
PhotoItemView photoItemView=new PhotoItemView(view);
view.setTag(photoItemView);

PhotoItemViewViewHolder的な役割などを持たすために作成したクラスです。
現状一部Viewの見た目変更もさせているので、ただのViewHolderではないです。
(現在試行錯誤中なので、設計が良いかどうかはとりあえず気にしない方向でお願いします。)
ここで生成されるviewLinerLayoutを親クラスとするPhotoItemViewGroupというクラスのViewなのですが、そこまでダウンキャストする必要もないのでしていません。
そもそもなぜPhotoItemViewGroupを作成しているかというと、
inflateしたらListViewの1アイテムがまとまっているので、
それを新たなクラスにしまわずにそれ自体を操作すれば良いのでは?と思ったからです。
1アイテムはImageViewTextViewButtonの3つで構成されています。

PhotoItemViewではコンストラクタでfindViewByIdから各種Viewの取得と記憶をやらせていて、あとでAdapterで各種Viewを取得する時も問題はありません。
PhotoItemViewGroupではコンストラクタで取得等をやらせるとnullになっていますが、AdapterPhotoItemViewから取得する処理の前後にfindViewByIdするとうまくいきます。

AdapterPhotoItemViewから各種Viewを取り出す処理はPhotoItemViewGrouponLayoutが呼ばれるよりも前に行われていたのですが、onLayoutViewが生成される時に呼び出されるわけではなくレイアウトの変更の時のみでしょうか?
また、実際にViewが生成される(た)タイミングで呼び出されるメソッドがあれば教えてください。