Как предотвратить выделение элементов ListView черным цветом - PullRequest
6 голосов
/ 25 февраля 2012

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

Прежде всего, это ListView в LinearLayout в ViewPager в LinearLayout.

Каждый элемент в этом ListView представляет собой LinearLayout, содержащий LinearLayout (содержащий TextView) и галерею.Галерея содержит несколько LinearLayouts, содержащих TextView и Imageview в FrameLayout.

Эта проблема возникает не по щелчку, а по перетаскиванию, как при проведении пальцем по истории (иногда, когда ListView прокручивается при перетаскивании),элемент под становится выбранным.Кроме того, эта конкретная проблема возникает только на устройствах, где эффект чрезмерной прокрутки не вызывает отказов при прокрутке.

Попытки решить проблему заключаются в следующем:

  • Установить списокСелектор для цвета фона в XML (не используется)
  • Установите для параметра выбора списка значение Alpha # 00000000 в XML (не используется)
  • Выше, но программно
  • Выше, но по теме
  • Код, который устанавливает выбор на -1 onListItemClick
  • Удаление фона из LinearLayout элемента списка (Работает на 4.0)
  • Установка android:cacheColorHint на #00000000 (ничего не делает?)

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

Screenshot of ListView Item being HIghlighted

1 Ответ

8 голосов
/ 27 февраля 2012

Это была самая интересная проблема. Решение которых еще интереснее.

По какой-то причине я не пытался, и никто не думал о том, чтобы удалить android:background из LinearLayout для элементов ListView.

После удаления android:background раскладка продолжает правильно отображаться и черный цвет больше не отображается.

Если у вас есть проблема, подобная этой, которая не может быть решена, вы можете проверить блог Android: Почему мой список черный?

РЕДАКТИРОВАТЬ: Это работало нормально для ICS, но выявила гораздо большую проблему в 2.1. Чтобы полностью решить испытание, мне пришлось указать android:cacheColorHint="#000000" для ListViewLinearLayout для хорошей меры) в моих встроенных стилях, а также в определении стиля, которое я применил к ListView.

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