目前,我ListView
对每一行都有一个不同的列表项视图(大多数情况不同)。我有 6 种不同的项目布局,将来我会添加更多,我只有 5-15 个列表项目,有时可能会更少,在其他情况下可能会很多。
一些项目视图包含:
- 浏览器
- 列表视图
- 图像视图
- Texviews
- 网格视图
- 轮播
- 网页浏览量
由于这是动态生成的,取决于数据,我面临以下问题:
- 缓慢滚动(有时)
- 列表项高度
- 表现
RecyclerView
在这种情况下是最好的解决方案吗?
目前,我ListView
对每一行都有一个不同的列表项视图(大多数情况不同)。我有 6 种不同的项目布局,将来我会添加更多,我只有 5-15 个列表项目,有时可能会更少,在其他情况下可能会很多。
一些项目视图包含:
由于这是动态生成的,取决于数据,我面临以下问题:
RecyclerView
在这种情况下是最好的解决方案吗?
如果不查看您的代码来识别特定问题,就很难解决您看到此类性能问题的具体原因。例如,您是否正确使用ViewHolder范例?或者当它应该加载到后台线程时,你是否不恰当地在 UI 线程上加载了东西?Android 有一小部分讨论使用 ListView平滑滚动,您应该检查一下。除此之外,根据你到目前为止所提到的......我认为你的主要问题是设计。
问题
如果您ViewPager
使用的是 FragmentPagerAdapter
... 那么这肯定会导致大量开销和性能拖累。
ListView
: 你永远不应该把 aListView
放在另一个ListView
. 这会导致各种各样的问题。Android 不喜欢嵌入两个滚动相同方向的可滚动小部件。即使这有效,它也会导致一些主要的性能问题。
GridView
: 也一样GridView
。你永远不应该将 aGridView
放在另一个ListView
中。即使这有效,它也会导致一些主要的性能问题。
如果您正在ImageView
加载一些大型图形,它应该在后台线程而不是 UI 线程上。否则你会得到一些缓慢的表现
Carousel - 我不知道这是什么 API,但如果它垂直滚动,那就不行了。
WebViews
是一个非常重的物体。我绝对可以看到这个家伙放慢了速度,尤其是在加载大量内容的情况下。
以@Joffrey 所说的话为基础。在您选择 UI 时存在一些主要问题。根据您在其中放置的内容,这ListView
告诉我您需要认真重新考虑如何向用户显示您的内容。例如,尝试使用 aTableLayout
或GridLayout
代替 a GridView
。