Android:ViewHolder 模式和不同类型的行?
Posted
技术标签:
【中文标题】Android:ViewHolder 模式和不同类型的行?【英文标题】:Android: ViewHolder pattern and different types of rows? 【发布时间】:2011-01-06 02:19:49 【问题描述】:ViewHolder 模式提高了 ListView 滚动帧率,如下例所示: https://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html
是否可以在为不同的行使用不同类型的视图时保持这种模式?
换句话说,是否可以执行以下操作:
public View getView(int position, View view, ViewGroup parent)
// calculate viewID here
if (view == null || *view is not null but was created from different XML than viewID* )
view = mInflater.inflate(viewId, null);
【问题讨论】:
【参考方案1】:是的,不过最好在适配器中覆盖 getViewTypeCount()
和 getItemViewType()
。这将教会 Android 的对象池在 getView()
中只将正确类型的一行返回给您。
【讨论】:
同时,我将所需信息作为标志添加到 ViewHolder,它可以工作以上是关于Android:ViewHolder 模式和不同类型的行?的主要内容,如果未能解决你的问题,请参考以下文章
在 ViewHolder 模式中将 ViewHolder 设为静态对于性能至关重要吗?
封装使用ViewHolder模式的Adapter组件,及用其快速实现聊天界面