我有一个列表CardViews,每个都有一个标题和一个图标。点击每个项目后,将打开一个活动,其中包含该卡的详细信息 我不认为我需要的不仅仅是一些项目(我不会超过10项),而且我不确定它们会变得多么动态和变化。
我的问题是:我应该使用QOpenGLContext
来展示这些项目,还是应该复制这些卡片并将其显示在RecyclerView
内,而不是LinearLayout
?
在性能方面,哪个选项更好?
答案 0 :(得分:2)
两个选项都应该没问题(我没有测试过性能,但两者都运行正常),虽然我更喜欢Linearlayout
。由于列表很小,您将失去RecyclerView
(性能方面)的大部分优势。
如果您决定使用LinearLayout
,则可以创建Compound control并将其重复用于不同的项目,这样您就不必在发生变化时手动编辑每个项目。
如果您决定使用RecyclerView,请不要忘记致电setItemViewCacheSize()
并将其设置为合理的金额(您的物品数量),因为对于这么少的物品它没有意义每次滚动时都需要重新填充项目。这对于较大的列表是有意义的,在这些列表中你无法有效地处理那么多项目,但对于cca 10项目,如果你将它们全部缓存它们似乎更快。您还要做的下一件事是在RecyclerView上调用setHasFixedSize(true)
。如果您不需要嵌套滚动,也可以调用setNestedScrollingEnabled(false)
,否则滚动可能会有点奇怪(如果您快速滑动则不会“快速/继续滚动”)。
希望这有帮助。