Цвет фона переработан в ListView - PullRequest
1 голос
/ 03 декабря 2010

У меня странная проблема.Я устанавливаю цвет фона элементов списка следующим образом:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;

    ...

    if (status == true) {
        row.setBackgroundColor(Color.argb(255,0,85,187));
    }
    else {
        if (morestuff) {
            row.setBackgroundColor(Color.argb(128,255,0,0));
        }
    }

    ...
}

Кажется, это работает.Однако, когда я прокручиваю список, а затем возвращаюсь, некоторые строки приобрели цвет из другой строки, не будучи установленным этим кодом.Я подозреваю, что просмотр списка перерабатывает представления как оптимизацию.

Как я могу это исправить?

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

getView будет вызываться все время, когда отображается список.Просто взять его будет вызвано, когда мы сделаем небольшой пример изменения, сделаем небольшую прокрутку
Если вы хотите установить цвет для определенной строки, просто сделайте это, проверив position (Первый аргумент getview).

1 голос
/ 03 декабря 2010

Представление списка определенно перерабатывает представления как оптимизацию. Вы должны посмотреть на эффективный пример представления списка для идей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...