Scrollview里面内嵌了一个ViewPager,ViewPager的内容是4个Fragment,4个Fragment里面都有较多的内容,且4个Fragment的高度不一,因为Scrollview和ViewPager冲突导致内容显示不全的问题,我采用了以下两个办法解决:
方法一:
根据Fragment的高度动态设置ViewPager的高度,获取Fragment的高度的方法是,获取Fragment最外层layout的高度,
int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
ln_container.measure(w, h);
vp_contentHeight = ln_container.getMeasuredHeight();
设置Viewpager的高度,
LayoutParams layoutParams = (LinearLayout.LayoutParams)viewpager.getLayoutParams();
layoutParams.height = vp_contentHeight ;
viewpager.setLayoutParams(layoutParams);
但是这个方法,虽然能动态设置高度,但是不准确,viewpager的内容还是有一小部分显示不全。
方法二:
重写Viewpager的OnMeasure函数,
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub@xjxuvup @37X21=777 @haoliuyou@fortianwei @Pis @hehui1860 @hehui1860 @zjw681691 @zjw681691 @haoliuyou
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
但是这样做导致Scrollview不能滑动了。
我已经黔驴技穷了,请大神们给支支招。 |