Чтобы нажатый элемент ListView выделялся бы нужным фоном, нужно:
1. определить цвет для "обычного" фона, используемый для исходного состояния, и цвет для фона, используемого для выбранного или нажатого элемента списка:
<color name="background_default">...</color>
<color name="background_selected">...</color>
2. создать селектор для выбора цвета фона в зависимости от состояния элемента
drawable/item_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/background_selected" android:state_pressed="false" android:state_selected="true"/>
<item android:drawable="@color/background_selected" android:state_pressed="true"/>
<item android:drawable="@color/background_default"/>
</selector>
3. указать свежесозданный селектор в качестве фона для элемента, отображаемого в списке
layout/listview_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/listitem_background_selector" ... ... ...>
... ... ...
</LinearLayout>
вместо п. 3 можно сделать проще и указать свойство ListView:
android:listSelector="@drawable/background_selected"
Готово.
1. определить цвет для "обычного" фона, используемый для исходного состояния, и цвет для фона, используемого для выбранного или нажатого элемента списка:
<color name="background_default">...</color>
<color name="background_selected">...</color>
2. создать селектор для выбора цвета фона в зависимости от состояния элемента
drawable/item_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/background_selected" android:state_pressed="false" android:state_selected="true"/>
<item android:drawable="@color/background_selected" android:state_pressed="true"/>
<item android:drawable="@color/background_default"/>
</selector>
3. указать свежесозданный селектор в качестве фона для элемента, отображаемого в списке
layout/listview_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/listitem_background_selector" ... ... ...>
... ... ...
</LinearLayout>
вместо п. 3 можно сделать проще и указать свойство ListView:
android:listSelector="@drawable/background_selected"
Готово.
Комментариев нет:
Отправить комментарий