Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我们能否在ListView中设置它应该保留在内存中的项目数,以便ListView赢得';不要每次都回收_Android_Android Listview - Fatal编程技术网

Android 我们能否在ListView中设置它应该保留在内存中的项目数,以便ListView赢得';不要每次都回收

Android 我们能否在ListView中设置它应该保留在内存中的项目数,以便ListView赢得';不要每次都回收,android,android-listview,Android,Android Listview,我有一个列表视图,其中有一些非常重的项目(不可滚动的网格视图,还有一些文本视图)。我已经在适配器中实现了ViewHolder模式,但滚动仍然不平滑。我们可以在列表视图中指定它应该在内存中保留多少项吗。我在列表视图中只有3个项目,但在滚动时,当一个新项目进入视图时,它总是有一些不连续性 示例:最初第一个子项和第二个clild的某些部分可见,然后用户滚动,当他即将点击第三项时,会出现轻微的中断,然后出现第三项。向上滚动时,当第一个孩子即将再次进入屏幕时,也会发生同样的情况。 我们是否可以指定列表视图

我有一个
列表视图
,其中有一些非常重的项目(不可滚动的
网格视图
,还有一些
文本视图
)。我已经在适配器中实现了
ViewHolder
模式,但滚动仍然不平滑。我们可以在
列表视图中指定它应该在内存中保留多少项吗。我在
列表视图中只有3个项目
,但在滚动时,当一个新项目进入视图时,它总是有一些不连续性

示例:最初第一个子项和第二个clild的某些部分可见,然后用户滚动,当他即将点击第三项时,会出现轻微的中断,然后出现第三项。向上滚动时,当第一个孩子即将再次进入屏幕时,也会发生同样的情况。



我们是否可以指定
列表视图
应该在内存中保留3个项目,并且不要像我们在ViewPager中那样回收它们(使用setOffscreenPageLimit)。我知道没有内置的支持来指定这一点,但是我们是否可以以某种方式扩展listView以拥有这样的功能

回答你的问题是

要执行此操作,请将或
View
s
visibility
设置为
GONE
,并在
getView()
参数中使用
position
,以了解其是否为第一项。然后将该特定位置所需的
视图
s设置为
可见
,将所有其他
视图
s设置为
消失


这似乎对您有帮助吗?

ListView默认情况下重用项目视图,您不需要做任何事情,顺便说一句,视图持有者模式与视图重用无关Check post可能有助于改进您的
ListView
@pskink我提到的视图持有者模式,我尽了一切努力使滚动平滑。但什么都没用。所以,我的最后一个办法是寻找加载内存中的所有项。只需使用Adapter.getView方法的convertView参数,可能您做错了什么。你能发布适配器及其视图吗?我不明白你想在解释中说什么,但有一点很清楚,我们无法真正控制ListView的多少项,它应该保留在内存中。所以为了解决我的问题,我使用了一个滚动视图并添加了3个布局,现在它滚动得非常平滑。