在Android开发中很多次碰到需要ScrollView嵌套ListView导致ListView显示不完整的问题,实际上不仅是ListView,只要继承自AbsListView的View都会遇到这个问题,包括ExpandableListView、GridView等,下面说一下解决方案
解决方案:
- 自定义一个类继承自ListView,并且重写onMeasure方法
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
- 在XMl布局中使用这个自定义ListView即可,但是这种方式可能会有一个问题,就是ScrollView会默认滚动到ListView的位置,所以需要在代码里设置一下
mScrollView.smoothScrollTo(0, 0);