android解决Viewpager设置高度为wrap_content无效的方法

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述android解决Viewpager设置高度为wrap_content无效的方法相关的知识,希望能为你提供帮助。
今天发现设置viewpager高度为wrap_content时并没作用。stackoverflow给出了解决方式,就是自己定义viewpager,重写onMesure()方法:
【android解决Viewpager设置高度为wrap_content无效的方法】

public class WrapContentHeightViewPager extends ViewPager {/** * Constructor * * @param context the context */ public WrapContentHeightViewPager(Context context) { super(context); }/** * Constructor * * @param context the context * @param attrs the attribute set */ public WrapContentHeightViewPager(Context context, AttributeSet attrs) { super(context, attrs); }@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); }}


使用的时候用WrapContentHeightViewPager取代viewpager就ok了


    推荐阅读