Custom ListView: записи разделителя игнорируют настройки
Я создал собственный ListView с разделителями (используя этот учебник). Он выглядит и работает нормально, но разделители по-прежнему активны, фокусируются и могут вызывать контекстное меню. Итак, я попытался "заткнуть их":
...
case TYPE_SEPARATOR:
convertView.setFocusable(false);
convertView.setClickable(false);
convertView.setLongClickable(false);
break;
}
return convertView;
Но они полностью игнорируют эти настройки! Для тестирования я использовал covertView.setBackground(Color.MAGENTA)
и это работает хорошо. Кто-нибудь понял, что может быть не так?
1 ответ
Предполагая, что ваш адаптер реализует BaseAdapter (например, ArrayAdapter), переопределите метод isEnabled() в адаптере.
@Override
public boolean isEnabled(int position) {
if (getItemViewType(postion) == TYPE_SEPARATOR) { // method taken from example
return false;
}
return super.isEnabled(position);
}
Чтобы отслеживать, какие элементы являются разделителями, а какие нет, сохраните ArrayList или какой-либо другой тип коллекции, которая отслеживает.