Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.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
Java 添加项目时,ListView闪烁_Java_Android_Android Listview - Fatal编程技术网

Java 添加项目时,ListView闪烁

Java 添加项目时,ListView闪烁,java,android,android-listview,Java,Android,Android Listview,在我的应用程序中,我有一个带有ArrayAdapter的列表视图。每个项目都包含一张图片,这需要一些时间来渲染。 现在我想在列表的末尾动态添加项目。问题是,wehenever add()被称为my List blinks,因为notifyDataSetChanged()被调用,而我的图片渲染需要几毫秒。我试图通过调用setNotifyOnChange(false)来避免这种情况。我用它解决了闪烁问题,但不幸的是,它只是不定期地更新我列表的“长度”。 有什么方法可以在不更新显示的视图的情况下更新我

在我的应用程序中,我有一个带有ArrayAdapter的列表视图。每个项目都包含一张图片,这需要一些时间来渲染。 现在我想在列表的末尾动态添加项目。问题是,wehenever add()被称为my List blinks,因为notifyDataSetChanged()被调用,而我的图片渲染需要几毫秒。我试图通过调用setNotifyOnChange(false)来避免这种情况。我用它解决了闪烁问题,但不幸的是,它只是不定期地更新我列表的“长度”。
有什么方法可以在不更新显示的视图的情况下更新我的listview的“长度”吗?

我同意应该避免使用UI线程,尤其是对于列表,尤其是在为每个列表项使用图像时。 也许您需要找到一个面向图像的更健壮的列表适配器?有关如何改进您自己的列表的一些有用想法/提示,请参阅


此外,AndroidQuery(AQuery)库在获取用于arrayadapter:的图像时可能很有用。它还解决了图像缓存的负担,我发现这非常有用。

缓存渲染图像如何?可能问题是您正在UI线程中加载图片,因此显示列表需要时间,这反过来会导致闪烁效应请用代码更新您的问题,以便我们可以帮助您。图像不会在UI线程中呈现,而是在单独的线程中呈现。图像仍在闪烁,因为它们需要时间渲染。UI线程在加载图像时仍然运行smoth。也许我应该尝试缓存渲染的图像…@user1901241不,你应该尝试阅读Basbous在评论中写的内容并提供完整的代码。