Список заметокВыбор в ListView

Я использую ListView с android:listSelector

 <style name="ListView" parent="@android:style/Widget.ListView"> <item name="android:cacheColorHint">@color/transparent</item> <item name="android:divider">@drawable/divider</item> <item name="android:dividerHeight">1px</item> <item name="android:listSelector">@color/red</item> </style> 

Выбор работает отлично, но когда я начинаю прокрутку, listSelector будет беспорядочно висеть сверху или снизу ListView . Буду признателен за любую помощь.

Поврежденный списокSelector

Solutions Collecting From Web of "Список заметокВыбор в ListView"

Основная проблема заключается в том, что вы используете сплошной цвет вместо использования Drawables. Недостатком структуры компоновки является то, что если вы устанавливаете сплошные цвета, тогда возникает проблема удержания.

Код, который вы используете как:

 <item name="android:listSelector">@color/red</item> 

Следует использовать как:

  <item name="android:listSelector">@drawable/list_view_selector</item> 

Вышеуказанное письменное вытягивание должно быть заключено в тег селектора.

Вот код для list_view_selector

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/background_selected" /> <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/background_selected" /> <item android:state_enabled="true" android:state_selected="true" android:drawable="@drawable/background_selected" /> </selector> 

Примечание. Вы не можете использовать сплошной цвет, как есть. Вы должны сделать селекторами для каждого цветового тона как:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:angle="90" android:centerColor="#ff0000" android:endColor="#ff0000" android:startColor="#ff0000" /> </shape> 

Я проверил это в конце. Работает идеально!