2

我希望使用 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 ...
}
4

0 回答 0