【问题标题】:Loading more items on the listView instead of n+2 items在 listView 上加载更多项目而不是 n+2 项目
【发布时间】:2015-04-13 10:45:30
【问题描述】:

我的 android 应用程序上有一个 ListView,在每个列表项中我都有一个包含一些图像的 ViewPager,这些图像是从网络下载的。

listView 的性能并不完美,当 listView 想要显示下一行应用程序在滚动时冻结大约 0.3 秒。我尝试使用 volley 下载图像,也尝试使用 async tasks 下载图像,但应用程序仍然存在同样的问题。

所以我试图找到另一个使用 listView 和 ViewPager 来显示列表视图项内的图像滑块的应用程序,我看到这个应用程序正在列表视图上加载更多行,所以当我滚动行时准备显示并且应用程序是工作正常,但是如果我滚动得如此之快,他们的应用程序会出现与我的应用程序相同的问题。

所以我的问题是:“我应该如何更改加载到列表视图中的默认项目数(屏幕上显示的项目数 + 2)?”。

如果您知道任何其他提高我的列表视图性能的解决方案,请告诉我。

【问题讨论】:

    标签: android android-listview android-viewpager


    【解决方案1】:

    对于列表视图中的图像加载,我建议您尝试毕加索图书馆

    Get it here

    如果您提供适配器代码后性能没有提高到最佳状态

    【讨论】:

    • 谢谢,这个库有助于提高性能,现在滚动更流畅,但仍然不像其他应用程序那样正常,还有其他建议吗?
    【解决方案2】:

    拥有大量图像并获得更平滑滚动的最佳方法是将 Picasso 与滚动侦听器一起使用。

    在某处创建一个 TAG 对象:

    public static final Object PICASSO_TAG = new Object();
    

    加载您调用的图像:

    Picasso.with(context).load(url).into(imageView);
    

    然后在AbsListView.OnScrollListener

    public void onScrollStateChanged(AbsListView view, int scrollState) {
      if(SCROLL_STATE_IDLE == scrollState){
          Picasso.with(context).resumeTag(PICASSO_TAG);
      } else {
          Picasso.with(context).pauseTag(PICASSO_TAG);
      }
    }
    

    【讨论】:

    • 谢谢,它帮助提高了性能,但是没有你分享的监听器性能更好,只是使用 Picaso 帮助了我,但是在没有加载图像时 listView 滚动仍然不流畅,之后所有图片加载列表滚动更流畅。
    • 嗨,如果性能不好,您可能在适配器中做的事情不够有效。例如......它只在单元格为空时才设置字体/颜色,而不是在您从标签加载单元格之后。
    猜你喜欢
    • 2014-03-03
    • 1970-01-01
    • 2015-12-03
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多