我希望使用 Android 支持库中的 FragmentStatePageAdapter 来实现一个画廊。创建适配器时我知道图片的数量。
我的片段基本上由一个简单的 imageView 和几个 TextView 组成。要检索图像,我想知道 imageView 的大小(MATCH_PARENT
在布局中使用),以便我可以从服务器请求适当大小的图像。
我的问题是,在哪里请求 imageView 的大小?在该onCreateView
方法中,高度和宽度的 getter 返回 null 并且我不知道将什么作为参数传入以measure(int,int)
正确计算大小。(父级上 measure(0,0) 的结果返回一个测量过的子级的高度/宽度,但太小了。)
在onStart
我的片段的方法中,为创建的前 2 个片段正确设置了高度和宽度,但其余部分返回 0。
获取框架保证调用的片段的布局高度/宽度的正确位置在哪里?
TIA,帕特里克
代码片段:
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 ...
}