您的位置:首页 > 其它

ScrollView中嵌套的viewPager,viepager高度设置为wrap_content时内容不显示问题以及与scrollview冲突的解决方案

2015-06-19 10:05 549 查看
1、高度问题的解决,可以通过获取其子控件的高度来动态设置,在自定义的viewpager中重写onMeasure方法

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

}

这样重写,就可以将viewpager的高度设置为其多个子控件的最大高度的子控件的高度。

2、防止与scrollview的冲突,可以通过重写 dispatchTouchEvent方法来解决

// 防止viewpager跟scrollview冲突

@Override

public boolean dispatchTouchEvent(MotionEvent ev)

{

boolean ret = super.dispatchTouchEvent(ev);

if(ret)

{

requestDisallowInterceptTouchEvent(true);

}

return ret;

}

我在scrollview中嵌套了viewpager,通过上述方法,现在已经解决一些问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: