Android关于ListView嵌套ListView时item只显示一条问题
项目要求需要实现一个Listview拉出时还需一个ListView展现出来,表中表。
按着常规想法去写时,会发现在嵌套里的ListView里不管怎样设置都是只显示1行item
在Adapter类下的getConut方法内做 数据行输出发现 数据如实际行数传了过来,遂问题出在View层
度娘之后了解到:ListView自带纵向的拖动条,如果嵌套会导致拖动条冲突,最终结果是里边的ListView无法正确得到实际item数量导致无法正确设置高度。
解决办法:重写ListView类,使之能将获取到的行数来正确设置正确高度
public class ScrollViewWithListView extends ListView { public ScrollViewWithListView(android.content.Context context, android.util.AttributeSet attrs) { super(context, attrs); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
再到XML布局里修改ListView标签名
<kinglee.exam6.ScrollViewWithListView .... />
完成