【发布时间】:2014-01-03 08:59:25
【问题描述】:
我有一个ListView,用于滚动字段列表、文本和照片。 两个高度都是动态的:textview可以包含一个很长的段落或一个句子,并且图像被缩放以适应宽度,因此高度是可变的(你可以看到照片)。有些项目甚至没有图像。
这使得物品的高度非常不均匀。有一个项目可以有 2 个屏幕长,而另一个只有一行文本。
我让它工作等等。但是当我向上滚动时,当循环视图插入到顶部时,滚动位置会跳跃大约与新孩子的大小。向下滚动完美...
我或多或少地理解为什么,显然回收的视图在大小上完全不同,这使得一些滚动算法失败,无论它在哪里。
我已经阅读了关于覆盖 itemType() 和 itemTypeCount 的信息,但我不知道这是否与我的问题有关。在我做的测试中,它没有(神奇地)起作用。
这可以很容易地解决吗,这里和那里有什么技巧或魔术 requestLayout 吗?
有人建议写一个视图回收器来解决这个问题:问题listview scrolls quite junky when therre are different row heights
写View recycler 会像听起来那么复杂吗?
抱歉这个抽象问题..
【问题讨论】:
-
请发布您的适配器布局和适配器 getView 代码。
-
发布您的 xml 代码...
-
@rupps 你是如何让你的物品高度可变的?我需要这样的清单!
-
@AVEbrahimi,没什么特别的,只是将“包装到内容”设置为项目,但你会遇到这个问题
-
我在getView中没有做任何奇怪的事情,只是避免发布它,因为它非常大并且充满了与这个问题无关的东西,问题只是膨胀的转换视图被重新转换到一个高度不同的新高度,在这种情况下滚动跳跃。顺便说一句,如果新单元格的大小“没有那么不同”,则滚动可以正常工作。没有布局 XML,视图是 100% 动态的。
标签: android listview scroll height adapter