Android サポート ライブラリの FragmentStatePageAdapter を使用してギャラリーを実装したいと考えています。アダプターを作成するときに写真の数を知っています。
私のフラグメントは基本的に、単純な imageView といくつかの TextView で構成されています。画像を取得するには、(レイアウトで使用している) imageView のサイズを知りたいMATCH_PARENT
ので、サーバーから適切なサイズの画像を要求できます。
私の問題は、imageView のサイズをどこで要求するかです。このメソッドでは、高さと幅のゲッターが null を返し、サイズを正しく計算するためにonCreateView
パラメーターとして何を渡せばよいかわかりません。measure(int,int)
(親のメジャー (0,0) の結果は、小さすぎる子の測定された高さ/幅を返します。)
私のフラグメントのonStart
メソッドでは、最初に作成された 2 つのフラグメントの高さと幅が正しく設定されていますが、残りは 0 を返します。
フレームワークによって呼び出されることが保証されているフラグメントのレイアウトされた高さ/幅を取得する適切な場所はどこですか?
ティア、パトリック
コードスニペット:
public void onStart() {
super.onStart();
// Must measure view first
ImageView imgView = (ImageView) getView().findViewById(R.id.picturefragment_image);
int height = imgView.getMeasuredHeight(); // FIXME Returns 0 sometimes
int width = imgView.getMeasuredWidth(); // FIXME Returns 0 sometimes
if (m_picture.getMaxHeight() != 0) {
height = Math.min(height, m_picture.getMaxHeight());
}
if (m_picture.getMaxWidth() != 0) {
width = Math.min(width, m_picture.getMaxWidth());
}
... Retrieval of image here ...
}