0

iPhoneでは、次のようなものがあります。

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

ここで、CellIdentifier は、特定の「タイプ」のセルのセルをデキューするために使用されます。したがって、テーブルビューに複数のセクションがあり、各セクションのセルが異なるデザインに従っている場合、CellIdentifier に基づいてデキューするセルの「タイプ」を定義できます。これにより、別のセルを描画する必要があるセクションに間違った種類のセルを再利用することを回避できます。

Androidでこれをどのように行うことができるのだろうか。以下のようにアダプタの 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でこれを行う方法について何か提案はありますか?

4

1 に答える 1

1

以下を実装することにより、複数のタイプの行を持つことができます: getViewTypeCount() getItemViewType()

于 2010-10-11T12:00:10.833 に答える