2010-09-21 48 views
0

我有一个列表视图,我膨胀第一个位置的布局和其他位置我做 另一个布局的通货膨胀。 我可以通过检查getView中的每一次来做到这一点,但正如你可以想象的那样,这不是非常有效。在Android上的listAdapter充气2个不同的布局

你可以与我分享你的想法,通过这种模式来获得结果吗? (这并不让我正确的结果(原因后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(); 
} 

回答

3

你问题与ListView中的视图在您滚动时重复使用的事实有关,因为性能原因

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

但是,在你的情况下,你可能想要l使用a header view

+0

头的看法是正是我想要的。 – weakwire 2010-09-21 20:49:58

+0

如果正确使用'getItemViewType'和'getViewTypeCount',则可以确定convertView具有有效类型(或者为null) - 请参阅我的答案 – tomash 2010-09-22 09:21:16