私のdrawable xmlファイルのカラーセレクタが尊重されないような問題が発生しています。私は、以下を含むレイアウトを持っている:Android - 図形xmlから参照されるColorStateList xmlの問題
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/filter_button_color" />
<corners
android:bottomLeftRadius="0dp"
android:topLeftRadius="5dp"
android:topRightRadius="0dp"
android:bottomRightRadius="5dp"/>
</shape>
と色の\ filter_button_color.xmlは次のとおりです:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="@color/myred"
android:state_checked="true"/>
<item
android:color="@color/myblue"
android:state_checked="false"/>
</selector>
(myredとmyblueで定義されているよう
<LinearLayout
android:layout_height="wrap_content"
android:id="@+id/sortLayout"
android:layout_width="fill_parent"
android:gravity="center"
android:background="@color/listSortBarBackground" android:orientation="vertical">
<ToggleButton
android:layout_width="30dp"
android:layout_height="30dp"
android:checked="true"
android:background="@drawable/filter_button_left"/>
<ToggleButton
android:layout_width="30dp"
android:layout_height="30dp"
android:checked="false"
android:background="@drawable/filter_button_left"/>
</LinearLayout>
描画可能の\のfilter_button_left.xmlに見えますcolors.xml)
ボタンがレンダリングされ、適切なチェックスタンドが取得されていることがわかります最初のものはテキスト "ON"で表示され、2番目のものは "OFF"で表示されているので、両方のボタンがその背景として形状を取得しますが、いずれの場合も形状の色はマイレッドです。私はfilter_button_color.xmlセレクタの項目を反転させて遊んでいました。セレクタ項目の実際の状態や状態にかかわらず、常に上の色が使用されているようです。
これがうまくいかない理由を誰にでも見られますか?
ありがとうございます! Scott
(これはあなたのために働く場合は受理として、upvoteおよびまたはマークしてください) –
私は(二つの異なる形状のxmlファイルとの間で選択する描画可能セレクタに元のレイアウト点を有することで、私はそれを動作させることができることを見ていますaはColorStateListの代わりに特定の色でチェックされ、チェックされていない)。それはあなたが念頭に置いていることですか?私はその解決策が1つではなく、もう1つのxmlファイルになるので混乱しています。また、2つの形状のxmlファイルが角の半径の設定を複製し、両方の場所で変更を管理する必要があるため、実装しようとしていたものよりやや厄介なようです。どんなイベントでも動作しますので、ありがとう! – Scott
ええと、少なくとも2つのxmlファイルの合計が必要になると思います(左右のドロアブルは異なると仮定しています)。残念ながら、drawableの半径部分を2回定義する必要があるのはちょっと難しいですが、周りに道が見えません。 –