如何拥有 android:background 颜色并仍然保留 Android 中列表的灰色焦点突出显示?
How to have a android:background color and still retain the gray focus highlight for lists in 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>
这更奇怪,因为我的印象是(可能不正确)选择器只会选择其中一项。
我不能 post 太多代码,因为这是工作代码,但只要有列表,整个应用程序都会发生这种情况。
如果您为 ListView
中的视图定义了 selector
,请将 ListView
中的 drawSelectorOnTop
属性 设置为真docs。
我正在将我的应用程序移植到 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>
这更奇怪,因为我的印象是(可能不正确)选择器只会选择其中一项。
我不能 post 太多代码,因为这是工作代码,但只要有列表,整个应用程序都会发生这种情况。
如果您为 ListView
中的视图定义了 selector
,请将 ListView
中的 drawSelectorOnTop
属性 设置为真docs。