使用自定义Layout代替ViewHolder

大哥们在线分析下,使用自定义Layout代替ViewHolder
最新回答
温情绝傲

2026-03-07 02:52:13

个人主页为 The_D的博客

很多人使用 Listview 时,总是用 ViewHolder 的模式来创建,而根据 Customizing Android ListView Rows by Subclassing 中说的,ViewHolder 是一种愚笨的方式。在这篇文章中,作者提出了一个新的思路,也就是通过自定义的 Layout 来代替 ViewHolder。

demo:

下面来说说如何实现:

首先,创建 item_relative_layout.xml :
item由头像 ImageView ,名字 TextView 和描述 TextView 构成

然后,创建 CustomRelativeLayout.java :

ListAdapter.java :

UsingCustomLayoutActivity.java :

activity_using_custom_layout.xml :

这样写可以使item复用,并且针对复杂的Adapter,大大的简化了书写。对于一些跟View相关的逻辑,可以直接写在CustomRelativeLayout中,消除了Adapter的冗余。