我必须为每一行使用不同的布局,我遵循一个简单的方法,我想确认我是否朝着正确的方向前进。
1)我对重复使用的观点保持一个弱的参考。
private WeakReference<View> mLocationView;
private WeakReference<View> mGallaryView;
..
2)然后在加载时我正在检查
if (mGallaryView == null || mGallaryView.get() == null) {....
//Inflating XML
mGallaryView = new WeakReference<View>(convertView);
}else {
convertView = mGallaryView.get();
}
我是正确地做了还是有其他方式?
答案 0 :(得分:2)
我做得对吗
没有
还有其他方法吗?
步骤1:覆盖getViewTypeCount()
中的ListAdapter
并返回您有多少种不同类型的行(例如,2)。我们将此值称为N
。
步骤2:覆盖getItemViewType()
中的ListAdapter
并返回一个数字,从0到N-1
,表示要用于此position
的特定行类型。
步骤3:在getView()
方法中,只返回给定位置的右侧行布局。 convertView
将为null
(因此您创建一个新的)或者它将是正确类型的行(因此您只需使用它)。
另见:
以及无数其他来源。