这种方法的优点是什么(在我的类MyAdapter中使用静态嵌套类扩展了RecyclerView.Adapter):
static class MyVH extends RecyclerView.ViewHolder {...}
这种方法(使用成员内部类):
class MyVH extends RecyclerView.ViewHolder {...}
还是不影响性能,两种方法都可以使用?
Answers:
它比Android问题更多是Java问题。如果要将实例从类中移除,建议对内部类使用static以避免内存泄漏。您可以看一下这篇很棒的文章,它解释了内部类的内存泄漏。
nyx基本上说:
回答您的性能问题,您可以看一下这个答案。静态的内存要比另一静态的内存少,但是同样,我们谈论的是回收器,它们将回收实例,因此对内存的影响不是问题。
通过使用静态,这仅意味着您可以MyVh
在其他适配器中重复使用。如果您确定只需要MyVh
一个适配器,则应使其为非静态。
如果您需要在其他适配器中使用它,则最好完全将其创建为单独的类,而不是嵌套类。
静态与非静态对性能均应没有影响!
如果要在许多地方使用一个Viewholder,则建议创建单独的类。否则,如果您只想在一个地方使用Viewholder,则创建一个非静态的嵌套Viewholder。静态查看器没有任何意义
在大多数地方,我使用嵌套的viewholder类