在项目中,往往会遇到ListView,来显示item上的信息。
但是,当给ListView上嵌套ScrollView的时候就会出现 如下两种情况(本人目前遇到的) :
1.SrcollView 无法 垂直滑动
2.第一个问题解决后,在显示的时候,当页面显示的时候,往往不能显示到最顶端。
关于上述问题,有如下解决办法:
1. SrcollView 无法垂直滑动
原因:ScrollView 和ListView 冲突导致
思路:自定义ListView
方法:自定义ListView,继承自ListView,然后重写onMeasure()方法即可。代码如下:
public class MyListView extends ListView{
public MyListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyListView(Context context, AttributeSet attrs) {
//super(context, attrs);
this(context,attrs,0);
}
public MyListView(Context context) {
//super(context);
this(context,null);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
第二个问题 :每次点击页面的时候,不能显示到最顶端
方法:在实例化自定义ListView 之后,添加 lv.setFocusable(false);
用来防止和ScrollView 冲突导致的默认起始位置不是最顶部