@Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); // measureListViewHeight(widthMeasureSpec); super.onMeasure(widthMeasureSpec, expandSpec); }
在使用list view过程中,经常会遇到scrollview包裹list view 等等 这种存在现实冲突或者滑动冲突的现象,一般大众化的处理方式就是重写上边的方法,,或者计算listview条目高度来得出list view的高度,不过我在一个红米2上边查看之前写的一个项目的时候,发现里边的重写高度之后的list view显示不全,如果有三条数据,那么总是显示一半,数据更多会发现展示的数据条数跟实际数据条数不一致。少了几条没展示出来,发现其他手机是正常的,最后检查了半天,才发现是因为布局文件中的一个属性引起的
<com.haier.uhome.view.MyListViewHeight android:id="@+id/x_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="13dp" android:background="@color/comment_child_list" android:divider="@null" android:dividerHeight="5dp" android:padding="10dp"/>
问题的出现就是因为 android:divider="@null"
在这个手机上出现的问题原因可能是由于这个手机Android版本过低引起的,在低版本当中计算listview高度的时候 如果:divider="@null",则会忽略dividerHeight这个属性的值,默认为零,条目高度计算没问题,但是忽略了条目间距这一段高度,
想要兼容所有Android版本不出现问题, android:divider= 的值最好不要写@null,写成与背景一样的颜色或图片即可