我有一个带有自定义渐变背景的ListViewItem。默认选择器不再突出显示这些行。
突出显示仅在我将背景设置为透明时才有效。如果没有这个改变,我怎样才能获得亮点?
这是我的ListView:
<ListView android:id="@+id/symbolsListView"
android:layout_width="fill_parent"
android:background="@drawable/transparent_background"
android:layout_height="390dp"
android:divider="@drawable/ui_divider_line"
android:cacheColorHint="#00000000"
android:listSelector="@drawable/blue"
android:drawSelectorOnTop="true"
>
答案 0 :(得分:4)
你的一些焦点和窗口焦点的状态。下面我提到了选择器的代码试试这个。
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:drawable="@color/transparent" />
<!--
Even though these two point to the same resource, have two states so
the drawable will invalidate itself when coming out of pressed state.
-->
<item android:state_focused="true" android:state_enabled="false"
android:state_pressed="true" android:drawable="@color/transparent" />
<item android:state_focused="true" android:state_enabled="false"
android:drawable="@color/transparent" />
<item android:state_focused="true" android:state_pressed="true"
android:drawable="@color/solid_red" />
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@color/solid_red" />
<item android:state_focused="true" android:drawable="@color/solid_red" />
</selector>
希望它有效。
答案 1 :(得分:2)
ListView中的当前选择由您使用“listSelector”属性提供的附加drawable突出显示。
默认情况下,选择器drawable是在列表项后面绘制的。因此,如果您的项目的渐变背景是不透明的,则永远不会显示选择器。
有两种解决方案:
答案 2 :(得分:1)
使用<selector>
以渐变背景显示“已按下”状态。