Как получить андроид: цвет фона и при этом сохранить выделение серого фокуса для списков в 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согласно документам.

Другие вопросы по тегам