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 模式和不同类型的行?的主要内容,如果未能解决你的问题,请参考以下文章