【发布时间】:2017-03-24 06:19:25
【问题描述】:
我有一个用于 ListView 的自定义适配器。布局有三个图像,一些文本。加载 Listview 时,由于图像的原因,需要一段时间。它类似于帖子。
iOS 中的相同应用加载速度非常快,我认为 UITableView 的工作方式与 Listview 不同。
有没有办法加载所有帖子,仅加载例如 3 个帖子,当用户向下滚动 Listview 时,加载下一个 3,向下滚动,加载下一个 3 等等。这可以提供更好的性能。
【问题讨论】:
我有一个用于 ListView 的自定义适配器。布局有三个图像,一些文本。加载 Listview 时,由于图像的原因,需要一段时间。它类似于帖子。
iOS 中的相同应用加载速度非常快,我认为 UITableView 的工作方式与 Listview 不同。
有没有办法加载所有帖子,仅加载例如 3 个帖子,当用户向下滚动 Listview 时,加载下一个 3,向下滚动,加载下一个 3 等等。这可以提供更好的性能。
【问题讨论】:
通常,android listview 以这种方式工作。假设用户目前可以访问 5 个视图。 ListView 创建 9 个视图,当用户滚动时,它会加载底部的视图。你可以这样想。
您的主要问题是如何加载图像并创建自定义视图。
自定义适配器有一个通用模式可以处理快速回收视图(ViewHolder 模式)。您应该查看 ViewHolder 模式的链接。 https://www.javacodegeeks.com/2013/09/android-viewholder-pattern-example.html
【讨论】:
它可能加载缓慢,因为每次都应该调整图像大小,如果你可以保存缩略图,它会更快。
【讨论】:
您是否尝试过改用 Recycler View?只要我知道使用 Recycler View 是当今的最佳实践。你可以在这里找到一个非常好的教程:
http://www.vogella.com/tutorials/AndroidRecyclerView/article.html
您使用 Recycler View 的方式几乎与使用 List View 的方式相同:适配器、viewHolder 等。值得一提的是,您需要特别注意 LayoutManager 的使用,因为 Recycler View 它本身没有t“知道如何绘制”屏幕上的东西。
【讨论】: