具有不同行布局的Android列表的方法

时间:2014-05-10 20:38:30

标签: android listview

我必须为每一行使用不同的布局,我遵循一个简单的方法,我想确认我是否朝着正确的方向前进。

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();
    }

我是正确地做了还是有其他方式?

1 个答案:

答案 0 :(得分:2)

  

我做得对吗

没有

  

还有其他方法吗?

步骤1:覆盖getViewTypeCount()中的ListAdapter并返回您有多少种不同类型的行(例如,2)。我们将此值称为N

步骤2:覆盖getItemViewType()中的ListAdapter并返回一个数字,从0到N-1,表示要用于此position的特定行类型。

步骤3:在getView()方法中,只返回给定位置的右侧行布局。 convertView将为null(因此您创建一个新的)或者它将是正确类型的行(因此您只需使用它)。

另见:

以及无数其他来源。