Повторное использование строк Android с iPhone-подобными CellIdentifiers? - PullRequest
0 голосов
/ 11 октября 2010

На 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?

1 Ответ

1 голос
/ 11 октября 2010

Вы можете иметь несколько типов строк, реализуя: getViewTypeCount () getItemViewType ()

...