2012-05-18 1 views
3

Я бы хотел отключить щелчок элемента списка. Одним из решений является переопределение areAllItemsEnabled(), чтобы всегда возвращать false, и isEnabled() для возврата false для определенной позиции. Однако это приводит к исчезновению разделительных линий вокруг определенного элемента списка. Несколько человек предложили вернуть true для areAllItemsEnabled() и false для isEnabled(), но это не работает для меня. Я не решаюсь разместить разделительную линию вручную, потому что мне нужно будет добавить родительский макет к элементу XML.Элемент списка без кликов с видимым разделителем

Есть ли способ, чтобы установить элемент ListView, чтобы быть не кликабельны и до сих пор сохраняют

+0

введите эту строку в свой код mList.setItemsCanFocus (false); – Aerrow

+0

У меня есть элементы в строках списка, которые нуждаются в фокусе, похоже, что это отключит их. – benkdev

ответ

0

На индивидуальном View, пытаясь его установка не быть интерактивными: view.setClickable(false). Если это не сработает, попробуйте view.setFocusable(false).

1

Решение в точности противоположно тому, что вам сказали. Вы должны вернуть false в areAllItemsEnabled() и просто удалить свое переопределение isEnabled(). Он отлично работает для меня, и вчера я тоже боролся с этим вопросом.

Все предметы не будут доступны для скачивания с areAllItemsEnabled() == false, но появится разделитель.

0

У меня также была эта проблема, но перезапись этих методов адаптера казалась уродливой. Затем один пост поразил меня идеей, которая уже работала. На представлении, которое нельзя кликать, просто вызовите view.setOnClickListener(null).

Бум, возможно, это обходное решение, а не реальное решение, но оно работает. Я должен отметить, что я добавил разделители программным способом в нижний колонтитул ListView, поэтому у меня была ссылка на разделители, и я мог просто установить OnClickListener на null.

 Смежные вопросы

  • Нет связанных вопросов^_^