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);
答案 0 :(得分:17)
是的,尽管覆盖适配器中的getViewTypeCount()
和getItemViewType()
要好得多。这将告诉Android的对象池只能在getView()
中向您提供一行正确的类型。