2016-09-20 2 views
1

In den Richtlinien für das Materialdesign finden wir Folgendes: enter image description here Ein EditText mit einem Symbol, das die Farbe im Fokus ändert.Ändern der Symbolfarbe des EditText im Fokus

Ist es möglich, dieses Verhalten mit der integrierten Design-Support-Bibliothek 24.2.0 zu erreichen? Gibt es ein nahtloses Attribut, um es zu erledigen, so etwas wie die app:passwordToggle Attribute?

Beachten Sie, dass EditText die drawableStart oder drawableLeft Attribut wird das Symbol in der unteren Zeile des EditText

enter image description here

und nicht außerhalb davon auf dem Materialdesign guildelines (cf als zur Schau erscheinen: Erstes Bild

)

Antwort

0

edittext_modified_states.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 
    <item 
     android:state_pressed="true" 
     android:drawable="@android:drawable/edittext_pressed" 
     /> <!-- pressed -->  
    <item 
     android:state_focused="true" 
     android:drawable="@drawable/edittext_focused_blue" 
     /> <!-- focused -->  
    <item 
     android:drawable="@android:drawable/edittext_normal" 
     /> <!-- default --> 
</selector> 

Anschließend können Sie für Ihre Textview dieses StateListDrawable als Hintergrund, etwa so:

<TextView 
    android:background="@drawable/edittext_modified_states" 
3

Haben zwei Symbole grau und blau handlich und die Drawables in Selektor mit entsprechenden Namen ersetzen.

einen Selektor erstellen phone_drawable_selector.xml wie folgt:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_focused="false" 
     android:drawable="@drawable/phone_grey" 
     /> <!-- not focused --> 
    <item 
     android:state_focused="true" 
     android:drawable="@drawable/phone_blue" 
     /> <!-- focused -->  
</selector> 

Verwenden drawableStart oder drawableLeft Attribut EditText als:

<EditText 
    ... 
    android:drawableLeft="@drawable/phone_drawable_selector.xml" 
    ... 
/> 
0

Die beste Art und Weise und zu aktualisieren UI in Android-Widget zu handhaben ist die Verwendung von ziehbar Datei Im Hintergrund wird das Bild direkt verwendet.

In der ausführbaren XML-Datei Android haben einen TAG Selektor, in dem wir Widget Status wie gedrückt, fokussiert und Standard erhalten können.

Für Ihre Referenz überprüfen Sie den folgenden Code für XML.

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" 

<item android:state_pressed="true" android:drawable="@android:drawable/edittext_pressed" </item> <!-- pressed --> 
<item android:state_focused="true" android:drawable="@drawable/edittext_focused_blue" </item> <!-- focused --> 
<item android:drawable="@android:drawable/edittext_normal" </item> <!-- default --> </selector> 

Verwenden drawableStart oder drawableLeft Attribut EditText als:

<EditText ... android:drawableLeft="@drawable/phone_drawable_selector.xml" ... 

</EditText> 
Verwandte Themen