Die Schaltfläche hat jedoch immer noch einen normalen Hintergrund, wenn sie deaktiviert ist. Was vermisse ich?
Versuchen Sie, den ersten Artikelabschnitt hinzuzufügen android:state_enabled=”true”
– Georgy Gobozov
26. Dezember 2012 um 15:56 Uhr
pressed false wird nicht gedrückt. Auch das Fehlen eines Zustands bedeutet nicht falsch. es bedeutet, dass es nicht berücksichtigt wird. Ihre Regel hier bedeutet also, dass jedes Mal, wenn eine Taste nicht gedrückt wird, das normale BG angezeigt wird.
– njzk2
26. Dezember 2012 um 16:14 Uhr
Sie müssen die löschen android:state_enabled=”true” des letzten Artikels, so haben alle anderen Status den @drawable/bttn_orange_normal. Sobald Ihre Schaltfläche deaktiviert ist, wird sie die erhalten @drawable/bttn_grey_disabled am richtigen Platz. Außerdem müssen Sie die Zeile mit dem entfernen android:state_pressed=”false” weil es die Definition von außer Kraft setzen wird android:state_enabled=”false”
@Estel Ich denke nicht, dass es eine verrückte dumme Regel ist. Stellen Sie sich den Selektor als Schaltergehäuse vor. Betrachten Sie jedes Element innerhalb des Selektors als eine “Case”-Anweisung mit “break” am Ende. Der erste Artikel ist: <item android:state_pressed="false" android:drawable="@drawable/bttn_orange_normal" /> das stimmt, der normale Hintergrund wird gesetzt.
– Versengt
19. Mai 2015 um 9:01 Uhr
Das es
Die Antwort von Vincent Ducastel ist richtig, beschreibt sie jedoch nicht warum die Lösung funktioniert.
Wenn Android die Liste der verfügbaren Elemente durchläuft, durchläuft es die Liste von oben nach unten und bewertet in jedem Fall, ob der aktuelle Zustand der Ansicht mit den für jedes Element definierten Zuständen übereinstimmt. Es dann wählt das erste Element aus, das den Bedingungen entspricht und ignoriert den Rest.
Aus diesem Grund sollten Sie immer ein Standardelement am Ende der Liste bereitstellen und bietet auch die Möglichkeit, komplexe Auswahlbedingungen anzuzeigen. Wenn Sie beispielsweise einen speziellen gedrückten Zustand haben möchten, wenn das Element deaktiviert ist, würden Sie die folgenden Elemente definieren:
Versuchen Sie, den ersten Artikelabschnitt hinzuzufügen android:state_enabled=”true”
– Georgy Gobozov
26. Dezember 2012 um 15:56 Uhr
pressed false wird nicht gedrückt. Auch das Fehlen eines Zustands bedeutet nicht falsch. es bedeutet, dass es nicht berücksichtigt wird. Ihre Regel hier bedeutet also, dass jedes Mal, wenn eine Taste nicht gedrückt wird, das normale BG angezeigt wird.
– njzk2
26. Dezember 2012 um 16:14 Uhr
Sie müssen die löschen android:state_enabled=”true” des letzten Artikels, so haben alle anderen Status den @drawable/bttn_orange_normal. Sobald Ihre Schaltfläche deaktiviert ist, wird sie die erhalten @drawable/bttn_grey_disabled am richtigen Platz. Außerdem müssen Sie die Zeile mit dem entfernen android:state_pressed=”false” weil es die Definition von außer Kraft setzen wird android:state_enabled=”false”
– alexscmar
21. Dezember 2015 um 10:32 Uhr