0

私の質問は、Android でセレクター項目を別の項目よりも優先できるかどうかです。最後の項目が 2 番目の項目よりも選択されているという問題があります。私のコードでは listView を使用し、onItemClick と LongItemClick の両方で view.setHovered(true); をコーディングしました。ビューがアクティブ化されていない場合にのみ機能します。アクティブ化されている場合、@color/white の代わりに @color/black が使用されます。前もって感謝します!

<item android:state_activated="false" android:state_hovered="false" android:color="@color/gray_light"/>
<item android:state_hovered="true" android:color="@color/white"/>
<item android:state_activated="true" android:state_hovered="false" android:color="@color/black"/>

Edit1: たぶんこれが問題です: v.setActivated / v.setHovered が呼び出される順序は重要ですか? Edit2: v.setActivated(true) 呼び出しの後にすべての v.setHovered(true) 呼び出しを配置し​​ましたが、それでも @color/black を選択します。

4

1 に答える 1

1

順序を変更します。APIガイドに記載されているように

状態が変化するたびに、状態リストが上から下にトラバースされ、現在の状態に一致する最初の項目が使用されます。選択は「最適な一致」に基づくのではなく、単に状態の最小基準を満たす最初の項目に基づいて行われます。 .

于 2013-08-20T10:31:50.027 に答える