Цвет селектора Android ListView

Привет все,

У меня есть 2 вопроса относительно ListView в Android:

  1. Как я могу получить цвет сфокусированной строки listview? Я пытался использовать ListView.getSelector () метод, который согласно его документации должен дать мне, что я ищу, но он дает мне объект Drawable, который я не знаю, как получить цвет от (если это возможно...).

  2. Как я могу выбрать цвет сфокусированной строки listview? Здесь я пытался использовать setSelector () метод на listview, передавая его объект ColorDrawable, но результат выполнения его состоит в том, что целый фон представления списка красится в том цвете... и это не то, что я хотел, конечно...

Спасибо!

73
задан M.G 29 December 2014 в 08:41
поделиться

1 ответ

Высеватель списков Drawlable представляет собой StateListdrawable - он содержит ссылку на несколько рисунок для каждого состояния, который можно найти, например, выбранный, сфокусированный, нажатый, отключенный ...

Хотя вы можете получить драгоценно используемый Get GetSelector () , я не верю, что вы можете получить определенный Drawlable из StateListdrawable , и не кажется, Возможно программно извлечь цвет непосредственно из ColordRawable в любом случае.

Что касается установки цвета, вам нужен StateListdrawable , как описано выше. Вы можете установить это в вашем списке с помощью атрибута Android: Listselector атрибут, определяющий Drawbable в XML, как это:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_enabled="false" android:state_focused="true"
        android:drawable="@drawable/item_disabled" />
  <item android:state_pressed="true"
        android:drawable="@drawable/item_pressed" />
  <item android:state_focused="true"
        android:drawable="@drawable/item_focused" />
</selector>
89
ответ дан 24 November 2019 в 12:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: