我的ViewPager一共有7个子页面,第一个内容最多,高度比较高,可以自适应。后面6个内容差不多,高度应该是一致的。
现在问题是,我1、3、4、5、6、7这6个页面都可以自适应高度,但是第个页面不能自适应,下方有很大一块空白。
我的ViewPager是自定义重写了OnMeasure方法。具体如下。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = 0;
for(int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight();
if(h > height) height = h;
}
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
不知道有没有比较好的方法可以解决这个问题,有遇到过的,请不吝赐教!
当前项目布局 : 外面一个PullToRefreshScrollView,里面嵌套一个ViewPager
当前项目问题 : 自定义ViewPager的onMeasure方法后如上所述。
希望:有遇到过该问题的前辈可以分享下处理方案,或者推荐可以替代PullToRefreshScrollView去兼容里面的ViewPager的组件或者替代ViewPager
去兼容PullToRefreshScrollView的组件都可以。
有详细推荐、解说的。能解决我当前问题的,就可以。
PS:问一下在哪里可以追加悬赏。。
我写个博客后给你发链接吧
不能同时适应多个子视图高度,除非你每次切换,都重新measure,那样会引起页面抖动
viewPager.setOffscreenPageLimit(1); 设置默认只初始化一个页面,其他页面就点击的时候才会初始化。
同问,这是个没有解决的问题,最终让前端写了一个H5搞定的,像前面的仁兄说的一样,每切换到一个tab需要重新measure和layout,比较麻烦。
在网上查到一个自适应子布局的方法,在自定义viewpager里写一个重置viewpager高度的方法