Android ViewPager和Fragment

Android ViewPager和Fragment,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我有一个ViewPager,其中包含3个片段,问题是每个片段的高度不同。在ViewPager中,我尝试使用wrap_内容作为高度,但它不起作用 编辑 我需要做的是在切换片段时让ViewPager调整大小 有什么想法吗?告诉ViewPager到wrap\u content它的高度将是碎片中最大的。然后,如果您有比最高片段短的其他片段,它们将在查看页面中显示得更短。ViewPager一次保存所有三个片段-它不会删除左右两侧的片段,因为它们需要准备好移入 因此,ViewPager的高度始终是最高片段的

我有一个ViewPager,其中包含3个片段,问题是每个片段的高度不同。在ViewPager中,我尝试使用wrap_内容作为高度,但它不起作用

编辑

我需要做的是在切换片段时让ViewPager调整大小


有什么想法吗?

告诉
ViewPager
wrap\u content
它的高度将是碎片中最大的。然后,如果您有比最高片段短的其他片段,它们将在
查看页面中显示得更短。
ViewPager
一次保存所有三个片段-它不会删除左右两侧的片段,因为它们需要准备好移入


因此,
ViewPager
的高度始终是最高片段的高度。相反,您可以将所有片段的高度设置为
match_parent
,将
ViewPager
设置为其父片段的大小(使用
match_parent
),或者尝试使用
wrap_content
将其调整为最大片段高度(虽然我不知道在一起使用
wrap\u content
match\u parent
时这将如何工作)

您需要在查看页面中设置高度,而不是xml

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);
    }
}

你可以发布一段你的代码吗?我不认为代码会有帮助,它是一个带有不同高度的片段的简单查看器。试着将高度设置为与你的父母匹配。你是否尝试过…代码会告诉你…以及你尝试过的…那也是。
  @Override
        public float getPageHeight(int position) {
         //Return different height based on position.
        // Height is returned as a float
             if(position == 1)
              {
                  return (0.35f);
               }
             else{
                  retrun 0.50f;
                  }
        }