2

我有一个 ListView,每一行都使用自定义背景颜色。我想确保在用户触摸一行时显示默认突出显示,所以我定义了一个带有选择器的可绘制对象,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:attr/colorControlHighlight">
    <item>
        <selector xmlns:android="http://schemas.android.com/apk/res/android">
            <item android:drawable="@color/clear" android:state_selected="true"/>
            <item android:drawable="@color/clear" android:state_focused="true" android:state_pressed="true"/>
            <item android:drawable="@color/clear" android:state_pressed="true"/>
            <item android:drawable="@color/white"/>
        </selector>
    </item>
</ripple>

乍一看,它似乎有效。但是,如果我滚动到以前不在屏幕上的行,当我第一次点击该行时,我不会得到涟漪。但是,如果我再次点击它,我确实看到了涟漪。如果我将行从屏幕上滚动出来,然后再重新打开,同样的事情会不断发生。

有任何想法吗??

谢谢!!

4

0 回答 0