2 qq 30154313 qq_30154313 于 2016.03.22 19:28 提问

安卓 自定义ViewPager 自适应高度

如题,ScrollView中嵌套了viewpager,可以上下划和左右划,viewpager中嵌套listview,滑动冲突解决了,却出现了高度不适应问题,
第一页加载正常,第二页内容比第一页少,可是高低却和第一页一样,这样就会出现大片空白区域,第三页。。。。。以此类推。。
viewpager每次加载3个页面,就只会取最大的高度赋值,我该怎么改呢,请大神们帮帮我。

重写了onMeasure

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    int height = 0;
    int h;
    for(int i = 0; i < getChildCount(); i++) {
        View child = getChildAt(i);
        h = 0;
        child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
        h = child.getMeasuredHeight();
        if(h > height) height = h;
    }

    heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);

    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}

1个回答

bdmh
bdmh   Ds   Rxr 2016.03.22 20:46

就是这样,否则它无法知道你想俺那个子页面高度设计,所以你就控制好子页面高度吧,空白就空白,你总不能让它忽高忽低吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
设置viewPager的高度为自适应
最近项目中需要Viewpager的高度能够自适应的动态改变,如果直接设置viewpager的高度为android:layout_height="wrap_content",并不起作用,viewpager会铺满父布局,通过阅读viewpager的源码,发现创建一个viewpager的子类并重写onMeasure可实现这个需求,代码如下:       /** * Created by zhaoxi
ViewPager高度自适应
本文是在对大神文章的理解基础上写的,算是对大神的文章做注解吧!大神文章地址:原文地址ViewPager用的很多,比如广告条等等,可是高度却不能自适应内容,总是会占满全屏,即使设置android:height=”wrap_content”也是没有用的。后来通过网上搜索,发现了几个思路:一、使用LinearLayout布局,利用其使用weight来自动调整ViewPager的高度; 二、使用高度
自定义ViewPager实现高度自适应 WRAP_CONTENT|包裹内容
在自定义ViewPager类中重写两个方法:
仿小红书顶部自适应高度viewpager
仿小红书顶部自适应高度viewpager,地址http://blog.csdn.net/u011622280/article/details/68946204
Android自定义viewpager且高度自适应
import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; /** * 滑动页面工具类 * * Created by
根据Fragment布局高度来自动适应的Viewpager
在最近的项目中,要用到ViewPager,但是viewpager是放在recycleview里面,高度是不确定的,只好重写measure方法来根据子布局的高度来动态生成viewpager的高度,但是有个缺点,就是不能根据子布局的高度来收缩viewpager的高度,为了这个优化,在网上找了一个多小时,终于找到个方法,下面直接贴使用的方法: 1.将自定义viewpager放进自己的项目 packa
重写ViewPager实现Scrollview嵌套ViewPager高度自适应
public class MyViewPager extends ViewPager {       public MyViewPager(Context context) {           super(context);       }          /**       * Constructor       *       * @param context the c
置顶TabLayout配合动态高度ViewPager效果实现
置顶TabLayout配合动态ViewPager效果实现
关于ViewPager高度自适应(随着页面高度改变Viewpager的高度)
重写Viewpagerpublic 使之高度自适应
高度自适应的ViewPager--SelfAdaptingViewPager
之前项目遇到了一个需求,需要scrollview里面嵌套一个viewpager,而且要做到切换viewpager的时候恰好完全展示对应的page。        在网上搜索了很久,只看到某位大神提供的CustomViewPager,代码如下:   public class CustomViewPager extends ViewPager { public