在实际开发的过程中,ScrollView中嵌套ListView或者是GridView是经常用到的,但是由于ScrollView是滚动控件,而ListView和GridView也是滚动控件,所以ScrollView中嵌套ListView和GridView会有冲突, 也就是会出现ListVew或者GridView数据显示不全。
解决这个问题的方法很多,这里提供一种解决方法。
重写ListView或者是GridView使其失去滑动特性;
public class MyListView extends ListView{
public MyListView(Context context,AttributeSet attrs){
super(context,attrs);
}
public void onMeasure(int widthMeasureSpec,int heightMeasureSpec){
int expandSpec=MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec,expandSpec);
}
}**
上面就是自定义的ListView,使其失去了滑动特性,这样这个MyListView嵌套在ScrollView中数据就能够显示完全。
GridView也是一样。
public class MyGridView extends GridView{
public MyGridView(Context context,AttributeSet attrs){
super(context,attrs);
}
public void onMeasure(int widthMeasureSpec,int heightMeasureSpec){
int expandSpec=MeasureSpec.makeMeasure(Inetger.MAX_VALUE>>2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec,expandSpec);
}
}**
以上重写ListView或者是GridView只是重写了onMeasure方法,使其失去滑动特性,其它特性保留。