更改视图寻呼机高度以使用片段的内容高度包装内容

nee*_*raj 2 android android-fragments android-viewpager

我ViewPagers在单个LinearLayout. 我想设置的高度ViewPager,以wrap_content动态。我的片段也是ViewPager动态加载的。因此,在页面更改时,如果片段的高度大于 viewpager 的高度,则应自动增加 viewpager 的高度。

布局就像

在此处输入图片说明

请建议怎么办?

Sae*_*eid 5

问题是“wrap_content”似乎不适用于查看寻呼机。这是解决方案:

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.View;

public class CustomViewPager extends ViewPager {

public CustomViewPager(Context context) {
    super(context);
}

public CustomViewPager(Context context, AttributeSet attrs){

    super(context, attrs);
}

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

    super.onMeasure(widthMeasureSpec, 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);
}
}
Run Code Online (Sandbox Code Playgroud)

参考: Android:我无法拥有 ViewPager WRAP_CONTENT