我的RecyclerView.ViewHolder可以是一个非静态的外部类吗?

时间:2016-08-27 07:20:44

标签: android listview android-recyclerview android-viewholder

我的View中有多种RecyclerView类型。我知道我需要写多个RecyclerView.ViewHolder s。

我试图在不同的软件包中编写这些内容,以使整个项目组织更加清洁。

我知道在为ListView使用ViewHolder模式时,ViewHolder应该(必须/可以?)成为静态内部类。

ViewHolderRecyclerView 的{​​{1}}是否可以是非静态和非内部的,并且仍能保留其预期的性能优势?

1 个答案:

答案 0 :(得分:2)

即可。最佳做法是使用单独的非静态类为RecyclerView.ViewHolder创建recyclerview适配器。好处是:

  
      
  • 通过创建内部静态类和单独,对于其他相同 RecyclerView.ViewHolder,它可以重复使用适配器。

  •   
  • 如果仅在单个适配器中使用RecyclerView.ViewHolder,则可以将其声明为适配器的内部类。

  •   

谈论效果

根据GC performance hit for inner class vs. static nested class和recyclerview的优势:

  

使用RecyclerView时,它会回收实例视图,因此内存影响不是问题。静态的内存比另一个占用更少的内存。

查看thisthis好的答案以获得更多想法。

我希望对你有所帮助。