在Android上的listAdapter中扩展2种不同的布局

时间:2010-09-21 19:03:00

标签: android listview

我有一个列表视图,我用布局和我做的每个其他位置给第一个位置充气 另一种布局的通胀。 我可以通过每次在getView中检查来做到这一点,但你可以想象这不是很有效。

你能否通过这种模式与我分享你的想法? (这不能得到正确的结果(因为在第一次充气后的位置数量取决于4-5个位置,我得到其他位置的layout.inside_list_2。)

if (convertView == null) {
  if (position == 0)
   convertView = mInflater.inflate(R.layout.inside_list_2,
                            parent, false);
    else
    convertView = mInflater.inflate(R.layout.inside_list, null);
  }
else{
        holder=(ViewHolder)convertView.getTag();
}

2 个答案:

答案 0 :(得分:3)

您的问题与滚动时重复使用ListView中的视图这一事实有关。这是出于性能原因而完成的。

因此,在getView中,您不能依赖于convertView处于任何给定的初始状态。您需要每次检查视图以确保它是正确的。

但是,在您的情况下,您可能希望使用a header view

答案 1 :(得分:1)

以下是类似问题的答案 - 它包含指向ViewHolder模式的指针,可提高列表性能 - Android: ViewHolder pattern and different types of rows?