使用多个Viewpager,如何设置View pager match_parent

时间:2016-05-10 06:31:41

标签: android android-fragments tabs android-viewpager

  

我正在使用两个Viewpage,当我运行项目时出现错误,第二个Viewpager没有显示但是当我设置高度值(例如:312dp)然后它会显示,我想要显示该viewpager height match_parent。我必须做什么,请帮助我

     

main.xml中

.Chrome()

2 个答案:

答案 0 :(得分:0)

在布局xml中,您需要更改viewpager上方的tablayout。 您需要将高度设置为match_parent,因为该属性是从顶部底部级联的。

答案 1 :(得分:0)

使用此WrappedViewPager类而不是ViewPager,并为WrappedViewPager设置高度wrap_content。

public class WrappedViewPager extends ViewPager {

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

public WrappedViewPager(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);
} }

替换你的laout中的viewpager:

<your_package_name_where_you_put_this_class.WrappedViewPager
                      android:layout_margin="10dp"
                    android:id="@+id/pager"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"/>

谢谢,