2013-08-26 6 views
8

Ich habe eine drawable links zu einer Schaltfläche sowie einen Hintergrund zeichnbar zugeordnet. Ich möchte einen Selektor zur Verfügung stellen, so dass, wenn ein Benutzer die Taste drückt/fokussiert/deaktiviert, sich ihr Aussehen ändert. Das Bild, das ich für den linken Zeichenbereich verwende, ist ein rotes "x".Ist es möglich, den linken Drawable einer Schaltfläche in Selector xml zu ändern?

Ich möchte dies mit einem grauen "X" austauschen, während die Taste gedrückt oder deaktiviert ist. Ist dies mit einem Selektor möglich? Hier

ist, was ich versucht (was für den Rahmen/Hintergrundbild funktioniert, aber nicht für das linke ziehbar (offensichtlich).

<?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_enabled="false" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove"/> 
    <item 
     android:state_pressed="true" 
     android:state_enabled="true" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove" /> 
    <item 
     android:state_focused="true" 
     android:state_enabled="true" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove" /> 
    <item 
     android:state_enabled="true" 
     android:drawable="@drawable/BlackBorder" 
     android:drawableLeft="@drawable/Remove"/> 
</selector> 
+0

@ theMothaShip erstellen Sie einen separaten Selektor und stellen Sie das als leftdrawable. – Varun

+0

@Varun Ich fühle mich albern, dass ich nicht dachte, das zu tun in erster Linie ... Danke! – theMothaShip

+0

@Varun Arbeitete wie ein Charme, zu übermitteln es als eine Antwort und ich werde es akzeptiert akzeptieren. – theMothaShip

Antwort

14

einen separaten Selektor erstellen und versuchen, Einstellung, die als drawableLeft auf Ihrem Button .

+0

Können Sie das mehr erklären? Nicht sicher ob ich verstehe. – user2966445

+0

In der Frage, OP hat eine 'Selektor' als Hintergrund festgelegt und hatte ein anderes Symbol als' leftDrawable' auf dem 'Button', die Auswahlzustände nicht widerspiegelte. Die Lösung besteht darin, ein einfaches Symbol nicht als 'leftDrawable' zu ​​verwenden, sondern stattdessen ein 'selector'-Zeichen (StateListDrawable) zu erstellen und dieses als' leftDrawable' zu ​​verwenden. Wenn Sie mehr über "StateListDrawable" erfahren möchten, folgen Sie diesem Link zum offiziellen Dokument - https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList – Varun

Verwandte Themen