Recyclerview最适合不同的列表项视图

时间:2014-10-06 11:21:28

标签: android listview android-recyclerview

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

某些项目视图包含:

  • ViewPager
  • 列表视图
  • ImageViews
  • Texviews
  • GridView的
  • CAROUSEL
  • 网页视图

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

  • 慢慢滚动(有些时候)
  • 列出物品高度
  • 表现

在这种情况下,RecyclerView是最佳解决方案吗?

1 个答案:

答案 0 :(得分:2)

如果没有看到您的代码来识别特定问题,那么很难解决您遇到此类性能问题的具体原因。例如,您是否正确使用ViewHolder范例?或者,当你应该在后台线程上加载时,你是否在UI线程上不适当地加载东西? Android有一小段讨论scrolling smoothly和你应该检查的ListView。除此之外,基于你到目前为止提到的内容......我认为你的主要问题是设计。

<强>问题

  1. 如果您的ViewPager正在使用FragmentPagerAdapter ...那么这肯定会导致大量的开销和性能下降。

  2. ListView:您永远不应该将ListView放在另一个ListView中。这将导致各种各样的问题。 Android不喜欢滚动相同方向的embedding two scrollable widgets。即使这样可行,也会导致一些主要的性能问题。

  3. GridView:与GridView相同。您永远不应该将GridView放在另一个ListView中。即使这样可行,也会导致一些主要的性能问题。

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

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

  6. WebViews是一个非常重的物体。我绝对可以看到这个人减慢了速度,特别是如果它加载了很多内容。

  7. 要建立@Joffrey所说的话。您选择UI时存在一些主要问题。根据您在此处放置的内容ListView告诉我,您需要认真重新考虑如何向用户显示您的内容。例如,尝试使用TableLayoutGridLayout代替GridView