Как изменить цвета ListViews state_focus и state_pressed - PullRequest
1 голос
/ 12 июля 2011

Я потратил много времени, пытаясь выяснить это без какого-либо успеха.

Я в основном пытаюсь изменить цвет элементов списка, когда они нажимаются.

У меня естьсделал XML-файл селектора и сохранил его в res / color / red_background.xml

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
      android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
      android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000">
</item> <!-- default -->
</selector>

, затем я попытался изменить цвет списка в прозрачный в list.xml, а в main.xml я использовал android: listselectorатрибут в моем списке просмотра и передается ему в red_background.

<ListView 
android:id="@+id/main_list"
android:listSelector="@color/red_background"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
></ListView>

каждый раз, когда я запускаю программу, она принудительно закрывается, если я удаляю "android: listSelector =" @ color / red_background ", программа работает нормально.

что я делаю не так?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Вы можете достичь этого за 2 шага, как показано ниже:

Step1 : переместить цвет в файл ресурсов color.xml:

<color name="color_list_press">#ffff0000</color>
<color name="color_list_focused">#ff0000ff</color>
<color name="color_list_default">#ff000000</color>

Step2: Изменить с Android: цвет на Android: рисовать

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- pressed -->
    <item android:state_pressed="true"
          android:drawable="@color/color_list_press"/>

    <!-- focused --> 
    <item android:state_focused="true"
          android:drawable="@color/color_list_focused"/>

      <!-- default --> 
    <item android:drawable="@color/color_list_default"/>
</selector>

С уважением,

1 голос
/ 12 июля 2011

Это должно быть android:listSelector="@drawable/red_background" в вашем списке, и вам нужно поместить red_background.xml в папку drawable

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