Frage

Mein Android-App, die eine TabActivity nutzt seinen Inhalt anzuzeigen, verfügt über 4 Registerkarten, die alle verwenden eine state-Liste ziehbar für das Symbol. Sie alle haben die gleiche Struktur, nur mit verschiedenen Bildern:

<?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>`

Wenn jedoch Registerkarten mit dem Trackball auf meinem HTC Desire (grüne Markierung) wählt, wird das dunkele Bild anstelle dem Licht eines verwendet. Sobald ein Tab tatsächlich gewählt wird, ist es weiß geworden. Was mache ich falsch?

War es hilfreich?

Lösung

Sie müssen für verschiedene Zustände verschiedene Elemente haben. mehrere Staaten in einem Artikel der Kombination (wie du) ist definitiv falsch. Ihre XML kann wie folgt aussehen:

<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>

Wenn es darum geht Ihre ziehbar seinen Zustand zu zeichnen wird zunächst geprüft. Wenn es das erste Element ausgewählt ist, wird verwendet, und das ist es - keine fokussierte Prüfung durchgeführt wird (Android findet nur ersten - nicht „relevantesten“ - Zustand). Aber wenn es nicht ausgewählt ist, wird die Prüfung für den fokussierten Zustand durchgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top