KaneTing 2016-05-25 04:50 采纳率: 0%
浏览 5812
已结题

ScrollView嵌套ListView的显示不全及滑动问题

需求描述:要在一个页面显示比较多的数据,如:旅图详情页面需要显示旅图照片、评论列表等等内容;而且页面可以上下滑动;当个人动态列表滑动到底部时,可以加载更多的评论。
如图-1:

旅图详情页

思路分析:因为要在一个页面显示较多的数据,且还有评论列表这样的模块,一下子想到使用ScrollView嵌套ListView,ScrollView可以上下滚动,ListView用于加载评论列表。

发现的问题:按照上面的思路,我做了尝试,发现两个问题:1) ListView显示不全:ListView只显示第一个。2) ListView不能上下滑动。
解决尝试:经过一番搜索,看到网上有这样的一些解决办法,本人都一一拿来尝试:
a) 在ScrollView的布局文件中加入配置android:fillViewport="true",试下来后发现ListView能显示的大一些了,充满了屏幕,但是还是不能滑动显示全部的评论。
b) 用代码设置ListView的高度,即根据ListView中item数目的个数设置ListView的高度,这样滑动屏幕就能将看到所有评论。
但问题又来了:因为评论数据可能会很多,现在的做法是进入旅图详情页面时,只展示部分评论,当页面下拉到最后一条评论时,通过“上拉加载更多”的滑动方式去查询更多评论,但是发现滑动不了,ListView滑动不了。为此又经过了一番的搜索,是因为ViewGroup的事件拦截和触发机制的原因,当然可给出了一些方法,为此又做了一些尝试:
c) 重写ScrollView的onInterceptTouchEvent()方法,直接返回false,即可将屏幕事件传递给子View,即可响应事件。
那么问题又来了,我只能把触摸点放在评论区域内,才能下拉加载更多,能不能触摸点在评论列表之外时,也能使评论区域上拉加载更多?另外如果想要使触摸屏幕上的任何一个点都可以往上滑动,该怎么做?因为发现当触摸点在评论列表上时,不能往上滑动,显示效果如图-2:

评论列表

其实我最终想要实现的目标就像是微博的具体内容展示页那样。
当然看到网上也有推荐不要用ScrollView嵌套,而使用ListView的header。
再此,希望高手能帮忙解答下!!!

  • 写回答

8条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2016-05-25 04:58
    关注

    你需要重新定义一个listview,然后measure得到所有item的长度
    http://yxwang0615.iteye.com/blog/1739187

    评论

报告相同问题?

悬赏问题

  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题