【问题标题】:Android ListView with Custom Adapter, slow loading带有自定义适配器的Android ListView,加载缓慢
【发布时间】:2017-03-24 06:19:25
【问题描述】:

我有一个用于 ListView 的自定义适配器。布局有三个图像,一些文本。加载 Listview 时,由于图像的原因,需要一段时间。它类似于帖子。

iOS 中的相同应用加载速度非常快,我认为 UITableView 的工作方式与 Listview 不同。

有没有办法加载所有帖子,仅加载例如 3 个帖子,当用户向下滚动 Listview 时,加载下一个 3,向下滚动,加载下一个 3 等等。这可以提供更好的性能。

【问题讨论】:

    标签: android listview


    【解决方案1】:

    通常,android listview 以这种方式工作。假设用户目前可以访问 5 个视图。 ListView 创建 9 个视图,当用户滚动时,它会加载底部的视图。你可以这样想。
    您的主要问题是如何加载图像并创建自定义视图。

    自定义适配器有一个通用模式可以处理快速回收视图(ViewHolder 模式)。您应该查看 ViewHolder 模式的链接。 https://www.javacodegeeks.com/2013/09/android-viewholder-pattern-example.html

    【讨论】:

    • 对于我使用 Glide 的图像。无论如何,假设我有大约 100 个帖子并将它们全部加载到自定义适配器中。加载完成后,我在 ListView 中使用适配器。我认为这就是问题所在。我认为仅加载例如 5 个帖子,而不是仅在 Listview 中使用它们。当用户滚动到 5 个帖子的末尾时,在同一个自定义适配器中加载另外 5 个帖子。我不知道这是否会自动更新 ListView,现在有 10 个帖子。
    【解决方案2】:

    它可能加载缓慢,因为每次都应该调整图像大小,如果你可以保存缩略图,它会更快。

    【讨论】:

      【解决方案3】:

      您是否尝试过改用 Recycler View?只要我知道使用 Recycler View 是当今的最佳实践。你可以在这里找到一个非常好的教程:

      http://www.vogella.com/tutorials/AndroidRecyclerView/article.html

      您使用 Recycler View 的方式几乎与使用 List View 的方式相同:适配器、viewHolder 等。值得一提的是,您需要特别注意 LayoutManager 的使用,因为 Recycler View 它本身没有t“知道如何绘制”屏幕上的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-22
        • 1970-01-01
        • 2014-09-06
        • 2013-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多