1

目前,我ListView对每一行都有一个不同的列表项视图(大多数情况不同)。我有 6 种不同的项目布局,将来我会添加更多,我只有 5-15 个列表项目,有时可能会更少,在其他情况下可能会很多。

一些项目视图包含:

  • 浏览器
  • 列表视图
  • 图像视图
  • Texviews
  • 网格视图
  • 轮播
  • 网页浏览量

由于这是动态生成的,取决于数据,我面临以下问题:

  • 缓慢滚动(有时)
  • 列表项高度
  • 表现

RecyclerView在这种情况下是最好的解决方案吗?

4

1 回答 1

2

如果不查看您的代码来识别特定问题,就很难解决您看到此类性能问题的具体原因。例如,您是否正确使用ViewHolder范例?或者当它应该加载到后台线程时,你是否不恰当地在 UI 线程上加载了东西?Android 有一小部分讨论使用 ListView平滑滚动,您应该检查一下。除此之外,根据你到目前为止所提到的......我认为你的主要问题是设计。

问题

  1. 如果您ViewPager使用的是 FragmentPagerAdapter... 那么这肯定会导致大量开销和性能拖累。

  2. ListView: 你永远不应该把 aListView放在另一个ListView. 这会导致各种各样的问题。Android 不喜欢嵌入两个滚动相同方向的可滚动小部件。即使这有效,它也会导致一些主要的性能问题。

  3. GridView: 也一样GridView。你永远不应该将 aGridView放在另一个ListView中。即使这有效,它也会导致一些主要的性能问题。

  4. 如果您正在ImageView加载一些大型图形,它应该在后台线程而不是 UI 线程上。否则你会得到一些缓慢的表现

  5. Carousel - 我不知道这是什么 API,但如果它垂直滚动,那就不行了。

  6. WebViews是一个非常重的物体。我绝对可以看到这个家伙放慢了速度,尤其是在加载大量内容的情况下。

以@Joffrey 所说的话为基础。在您选择 UI 时存在一些主要问题。根据您在其中放置的内容,这ListView告诉我您需要认真重新考虑如何向用户显示您的内容。例如,尝试使用 aTableLayoutGridLayout代替 a GridView

于 2014-10-08T01:24:43.007 回答