ルートが実装されていない、選択したカスタム リスト項目の色をオレンジ色から system_blue に変更することに成功しました。 ViewGroup
Checkable
selector.xml
<selector>
<item android:state_pressed="true"
android:drawable="@color/system_blue"/>
<item android:state_checked="true"
android:drawable="@color/system_blue"/>
<item android:drawable="@android:color/transparent"/>
</selector>
ケースもstate_checked
定義されていますが、指が選択された項目から離れた後、選択されたリスト項目の状態は維持されません。
ViewGroup implements Checkable
選択したリスト項目のステータスを維持する必要があるため、カスタム リスト項目の rootになりました。また、 InterfaceCheckable
のメンバー関数setChecked()
は次のように実装されます。
public void setChecked(boolean checked) {
mChecked = checked;
setBackgroundDrawable(checked ? new ColorDrawable(
getResources().getColor(R.color.system_blue)) : null);
}
指が選択項目から離れた後、選択項目の色を system_blue に維持できるようになりました。それにもかかわらず、アイテムを押すと、最初に色が system_blue ではなくデフォルトのオレンジ色に変更されます。私の Android デバイスにはデフォルトのオレンジ色があります。どんなアイデアでも大歓迎です。