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

标签 android listview android-recyclerview android-viewholder

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

我正在尝试将它们编写在不同的包中,以使整个项目组织更加清晰。

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

RecyclerView ListViewViewHolder是否可以是非静态和非内部的,并且仍然保留其预期的性能优势?

最佳答案

。最佳实践是使用 RecyclerView.ViewHolder 的单独非静态类创建 recyclerview 适配器。好处是:

  • By creating inner static class and separate , It is reusable in the case of same RecyclerView.ViewHolder for other adapters.

  • If your using RecyclerView.ViewHolder in only single adapter, you can declare it into inner class of your adapter.

谈论性能:

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

While using RecyclerView, it's recycle the instances viewholder, so the memory impact is not a problem. The static one will take less memory than the other one.

thisthis好的答案是为了获得更多想法。

希望对你有帮助。

关于android - 我的 RecyclerView.ViewHolder 可以是非静态外部类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39178549/

相关文章:

java - 如何在 RecyclerView 中为自定义 View 使用 setter?

java - android java套接字写入和接收byte[]数据

android - Activity生命周期方法: onPostResume significance

java - 在Group之上展开Android的ExpandableListView Children

android - listView android 在一个列表中可点击,在其他列表中不可点击

android - 指数级提高 RecyclerView 中的滚动速度? (可穿戴)

java - Android FusedLocationProviderClient问题

c# - 控制键的 ListView KeyUp 错误

android - 在 Android 上仅加载 ArrayAdapter 的可见行

android - 来自 Json 的可扩展 ListView