私は 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>
一見、うまくいっているように見えます。ただし、以前は画面に表示されていなかった行にスクロールすると、その行を初めてタップしたときに波紋が発生しません。しかし、もう一度タップすると、波紋が見えます。行を画面の外にスクロールしてからもう一度戻すと、同じことが起こり続けます。
何か案は??
ありがとう!!