0

TabActivity を使用してコンテンツを表示する Android アプリには 4 つのタブがあり、すべてアイコンにステート リスト ドローアブルを使用します。イメージが異なるだけで、すべて同じ構造をしています。

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/icon_options_dark" android:state_selected="true" android:state_focused="false" />
        <item android:drawable="@drawable/icon_options_white" />
</selector>`

ただし、HTC Desire のトラックボール (緑色のハイライト) でタブを選択すると、明るいイメージではなく暗いイメージが使用されます。タブが実際に選択されるとすぐに、それは白くなります。私は何を間違っていますか?

4

1 に答える 1

1

州ごとに異なるアイテムが必要です。(あなたがしたように)1つのアイテムに複数の州を組み合わせるのは間違いなく間違っています. XML は次のようになります。

<xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/icon_options_dark"
        android:state_selected="true" />
  <item android:drawable="@drawable/icon_options_light"
        android:state_focused="true" />
  <item android:drawable="@drawable/icon_options_white" />
</selector>

ドローアブルの描画に関しては、まずその状態がチェックされます。それが選択されている場合、最初のアイテムが使用され、それで終わりです - 焦点を絞ったチェックは実行されません (Android は、「最も関連性の高い」状態ではなく、最初の状態のみを検出します)。ただし、選択されていない場合は、フォーカス状態のチェックが実行されます。

于 2010-11-22T11:43:16.567 に答える