【问题标题】:Dynamic List View - Design Pattern动态列表视图 - 设计模式
【发布时间】:2013-04-17 08:36:11
【问题描述】:

我必须在这个Mockup 中实现设计,我的List 将从服务器获取实时数据并缓存它。

该列表将包含大图片和多达1000个项目

  • 用户将设置限制。
  • 图像可以是任何大小(以 MB 为单位)或任何分辨率。
  • 如果图片太大,我一定会重新调整大小。

向上和/或向下滚动时,列表应加载本地缓存(存储)的数据或从服务器下载。

由于如此庞大的列表将需要大量内存和处理(这在移动设备上不可用),我需要应用非常优化的设计模式。

问题

任何人都可以为此建议任何设计模式吗?

你将如何实现它?

相关问题: List View Design Pattern

【问题讨论】:

  • stackoverflow.com/questions/15621936/whats-lazylist/…。使用带有自定义适配器和自定义布局的 LazyList 或 Universal Image Loader 为每一行充气。如果图像很大,则需要按比例缩小。 LazyList 做缩放,可以在 sdcard 中缓存图片。
  • 感谢@Raghunandan,它非常有用。你认为,如果我实现 Flip animation 而不是 ListView,它会同样好用吗?
  • @sm.umair 我不知道我没有做过翻转动画。如果有帮助,请在链接中投票
  • @Raghunandan 声望不够,等够了我就投票。

标签: android performance algorithm listview design-patterns


【解决方案1】:

Commonsguy (Mark Murphy) 在这里实现了一个非常漂亮的无限列表视图:

https://github.com/commonsguy/cwac-endless

它避免了为您的列表视图加载大型数据集,并允许用户在滚动时滚动越来越多的元素。我对其进行了测试,它非常简洁:到达底部时添加的元素数量,异步加载等。您必须处理回滚部分,因为实际上,当您向下滚动时滚动会动态增加(不是上)。

【讨论】:

    【解决方案2】:

    您可以将图像和数据存储在数据库中,您可以使用缓存并使用服务等后台进程填充数据库。

    【讨论】:

      【解决方案3】:

      如果您有大量数据,特别是图像,您应该使用 rominGuy 在Google IO-2010 中解释的加载器类概念 在这里,您可以在每一行消失时重用它,而另一行进入可见性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-03
        • 1970-01-01
        • 2018-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多