Джекс, ты сказал, что:
Проблема в том, что black_alpha будет применять весь список, а не только выбранный элемент списка
У меня была такая же проблема. Поработав с ним некоторое время, я смог заставить его перестать применять цвет ко всему списку, используя 3x3 png изображение нужного мне цвета вместо применения цвета. Поэтому по какой-то странной причине, если вы используете цвет, вы получаете странное фоновое поведение, когда вы используете png, он работает нормально. : S
Так что это один из способов обойти это.
----- Другой способ ----------
Я нашел лучшие результаты, когда установил селектор listView, чтобы не было никаких состояний, подобных этому:
Рез / рисуем / list_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
</selector>
Тогда я забочусь о всех состояниях на заднем плане элемента списка. НЕ в селекторе. Я обнаружил, что таким образом у меня больше контроля.
Рез / цвет / list_item_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false"
android:state_pressed="false"
android:drawable="@color/list_item_black_translucent" />
<item android:state_pressed="true"
android:drawable="@color/light_green_accent_translucent" />
</selector>
Тогда вот мой элемент списка:
Рез / макет / simple_list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingRight="45dip"
android:paddingBottom="2dip"
android:layout_gravity="center_vertical"
android:background="@color/list_item_bg">
<ImageView
android:id="@+id/arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dip"
android:src="@drawable/list_item_arrow" />
<TextView
android:id="@+id/simple_list_item_label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textSize="12sp"
android:textColor="@color/list_label_color"/>
</LinearLayout>