使用类似iPhone的CellIdentifiers重用Android行?

时间:2010-10-11 11:47:09

标签: iphone android listview reusability

在iPhone上你有这样的东西:

static NSString *Celldentifier = @"Section1_Cell";
 UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier: CellIdentifier];

其中CellIdentifier用于使特定“类型”细胞的细胞出列。因此,如果在tableview中有多个部分,并且每个部分的单元格遵循不同的设计,则可以根据其CellIdentifier定义要出列的单元格的“类型”。这样就可以避免为需要绘制不同单元格的部分重用错误类型的单元格。

我想知道如何在Android上完成此操作。我知道您可以通过覆盖Adapter的getView(...)方法来重用行,如下所示

@Override
public View getView(int position, View convertView, ViewGroup parent){
 View row = convertView;
 CustomRowWrapper wrapper = null;
 if (row == null){
           // inflate your row layout and create a new row object from it
        }

但这仅在所有单元格完全相同时才有效。如果你想区分行类型这是不够的,你可以看到滚动列表时,正在重用“错误”类型的行代替不同的行集,因为没有什么可以告诉适配器什么类型要重用的行。

有关于如何在Android上完成此操作的任何建议吗?

1 个答案:

答案 0 :(得分:1)

通过实施,您可以拥有多种类型的行: getViewTypeCount() getItemViewType()