1

次のように color_list_1 というカラー リストがあるとします。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:color="#FF0000"/>
    <item android:color="#00FF00"/>
</selector>

color_list_2 という別のカラー リストを作成できるようにしたいと考えています。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#0000FF"/>
    <item android:color="@color/color_list_1"/>
</selector>

これにより、色に color_list_1 を使用するコントロール Foo を作成できます。ここで、AmazingFoo というサブクラスを作成したいと思うかもしれません。これは、Foo と同じ外観を維持したいのですが、それに押された色も追加したいのです。

これを試してみましたが、color_list_2 を色として使用すると、color_list_1 内で状態が無視されるようです。これは、押された状態が機能することを意味します (color_list_2 に直接あるため) が、color_list_1 にフォールバックすると、フォーカスされた状態は常に false になるため、デフォルトの色が返されます。

color_list_1 の使用は完全に機能するため、コントロールの問題ではないことはわかっています。すべての状態が false を返すのは、別のカラーリスト内にカスケードした場合のみです。

4

0 に答える 0