ViewPager大小无法适应当前页面大小

时间:2017-01-16 13:45:58

标签: android android-viewpager

我有一个包含多个元素的ScrollView,其中有一个ViewPager。我希望我的ViewPager高度与其当前页面高度(并且可滚动)相同,以避免其底部的空白区域。 我的ViewPager类是以下

    public class ScrollableViewPager extends ViewPager {

        private int currentPageNumber;
        private int pageCount;

        public ScrollableViewPager(Context context) {
            super(context);
            prepareUI();
        }
    public ScrollableViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
        prepareUI();
    }

    private void prepareUI() {
        setOffscreenPageLimit(pageCount);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int height = 0;
        if (getChildCount() != 0) {
            View child = getChildAt(currentPageNumber);
            child.measure(widthMeasureSpec, heightMeasureSpec);
            height = child.getMeasuredHeight();
        }
        heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
}

我认为它可以完成这项工作,但是使用该代码我的ViewPager始终是其第一页的高度,而不管我设置为屏幕外页面限制。

我无法弄清楚我做错了什么。

0 个答案:

没有答案