代码之家  ›  专栏  ›  技术社区  ›  Cruces

用多个“消失”视图或一个RecyclerView中的多个布局填充单个布局文件是否更快?

  •  -1
  • Cruces  · 技术社区  · 6 年前

    我正在创建一个简单的问答应用程序,它(将来)将支持在单个应用程序中显示 RecyclerView 很多不同的问题。

    每个问题(现在)都有一个问题和一个答案部分。

    每个列表项都有一个 TextView 对于这个问题(以及其他一些装饰性的东西),然后我必须添加答案部分。

    我可以走两条路。添加一个 View 对于我可以得到的每种类型的答案(目前有12种类型的答案,如文本、数字、滑块、日期、日期范围等),以及 ViewHolder 回收视图 将所有未使用的视图设置为“消失”,或创建12个不同的列表项布局(也将包含问题部分),并传递不同的 viewType onCreateViewHolder 方法将创建12个不同的 ViewHolders 它将扩展一个摘要 取景器 它可以处理普通的事情。

    有人能告诉我这两种方法中哪一种更好吗?另外,我关心的是速度(预计在某个时刻,这可能会达到1000个列表项),所以速度方面,什么会更好?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Khemraj Sharma    6 年前

    明显 创建不同的视图类型将更有效 以及良好的实践。并且会使你的列表更平滑。(如你所说,会有大量物品)

    理性存在。

    • 视图将只呈现所需的视图。(正如您为项指定了类型一样。)因此,在UI线程中需要的内存更少。
    • 如果在RecyclerView项中包含所有视图,则它们都将呈现(即使不可见)。
    • 记住,布局中的所有内容都有其类和方法。当然,渲染2个类比渲染10个类要好。