美文网首页
Listview和ScrollView为什么展示不全及如何解决

Listview和ScrollView为什么展示不全及如何解决

作者: 风一样的code | 来源:发表于2019-03-22 10:53 被阅读0次

大家在使用ListView和ScrollView嵌套时会发现ListView无法全部展开,这是为什么呢?

看一下源码就很好理解了

ScrollView在测量子View的时候,会强制把子View的MeasureSpec模式改为MeasureSpec.UNSPECIFIED,然后再看一下Listview的onMeasure方法

当模式为MeasureSpec.UNSPECIFIED的时候,ListView的高度会别设置为子View的高度加上 top和bottom的padding值

所以ListView和ScrollView嵌套使用无法展开,只能显示一个条目;

那么如何解决呢

因为是ListView的测量问题,所以自然而然的就会想到重写ListView的onMeasure方法;

更改它的测量模式,看上图当MeasureSpec为AT_MOST的时候返回的heightSize的高度是所有子 View的总高度

重写后如下图

至于为什么还要有一个Integer.MAX_VALUE>>2,大家可以访问 为什么MAX_VALUE>>2了解一下

代码动手巧一下吧,复制粘贴不如亲自动手,加油,喜欢的小伙伴记得点个赞呦~

相关文章

网友评论

      本文标题:Listview和ScrollView为什么展示不全及如何解决

      本文链接:https://www.haomeiwen.com/subject/jlhlvqtx.html