我正在使用两个Viewpage,当我运行项目时出现错误,第二个Viewpager没有显示但是当我设置高度值(例如:312dp)然后它会显示,我想要显示该viewpager height match_parent。我必须做什么,请帮助我
main.xml中
.Chrome()
答案 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"/>
谢谢,