繁体   English   中英

如何为单个 ListView 创建多个适配器?

[英]How to create multiple adapters for a single ListView?

我想做的是一个简单的应用程序,它显示一个菜单,让用户通过在该菜单中选择不同的主题来切换内容(如图片)

内容存在于 ListView 中,因此需要一个适配器,内容不同,包含从 URL 加载的图像,我制作了不同的适配器来匹配不同的内容,并通过为用户设置目标适配器让 ListView 在它们之间切换已在菜单中按下,并且在每次按下时都会发生这种情况,但问题是每次我为 ListView 设置目标适配器时,内容中的这些图像都会从 URL 重新加载,因为 GetView() 方法已在每次调用适配器中的时间,那么我能做些什么来防止它们重新加载? 我知道我可以创建多个列表视图,但我认为这不是一个好方法..

首次下载图像时将图像缓存在文件系统上。 加载图像时,请检查缓存,并仅在图像尚未缓存时才下载图像。 如果是,请改为从文件系统加载它们。

尝试使用 glide 或 Picasso 在不同的列表视图中加载图像。 Glide 在内部使用它们的 url 作为检索缓存的键来缓存图像。 这样,当您的图像在任何列表视图中加载一次时,它们可以被缓存以供将来在其他列表视图中使用。 但是,您仍然需要创建图像视图的新实例,因为您将使用完全不同的列表视图。 您可以创建自己的图像视图工厂,并在其中填充内容(图像),并根据唯一键(您将定义自己可能会很痛苦)获取此类视图,但这对于很少的结果来说是矫枉过正的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM