Как получить андроид: цвет фона и при этом сохранить выделение серого фокуса для списков в Android?
Я портирую свое приложение на Chrome OS, и в приложении есть несколько мест, где работает навигация с помощью клавиш со стрелками, но текущий выделенный элемент никак не выделяется. Я обнаружил, что всякий раз, когда я устанавливаю цвет фона для такого элемента, как
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
...
android:background="@color/white" >
...
</LinearLayout>
тогда выделение по умолчанию для сфокусированного элемента не будет отображаться. Удаление этого покажет фон по умолчанию (который не всегда совпадает с тем, что я хочу).
Кроме того, в случаях, когда я использую селектор в ListView, фон находится перед намеченным выделением для рисования (это можно увидеть, если цвет несколько прозрачен).
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime" >
<item android:state_pressed="false" android:state_focused="true" android:drawable="@drawable/list_focused" />
<item android:state_pressed="true" android:drawable="@drawable/list_pressed" />
<item android:drawable="@color/white" />
</selector>
Это еще более странно, поскольку у меня сложилось впечатление (возможно, неправильное), что селекторы выберут только один из элементов.
Я не могу опубликовать слишком много кода, так как это рабочий код, но это происходит во всем приложении, где бы ни находился список.
1 ответ
Если у тебя есть selector
определены для просмотров в вашем ListView
, установить drawSelectorOnTop
свойство истины на вашем ListView
согласно документам.