2016-09-20 16 views
1

マテリアルデザインのガイドラインでは、次の項目を見つけることができます。 enter image description here フォーカスのときに色が変わるアイコンを含むEditText。フォーカス上でEditTextのアイコンの色を変更する

ビルトインデザインサポートライブラリ24.2.0でこの動作を実現できますか? app:passwordToggle属性のような、シームレスな属性がありますか?最初の写真:材料設計guildelines(CFに展示としてのEditTextのdrawableStartdrawableLeft属性を使用すると、アイコンがそれの外のEditText

enter image description here

とないの最下行に表示されるようになることを

注意)

答えて

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> 
<TextView 
    android:background="@drawable/edittext_modified_states" 
3

は便利なグレーとブルーの2つのアイコンがあり、適切な名前でセレクタでドローアブルを置き換える:210あなたはそのようにように、あなたのTextViewの背景として、このStateListDrawableを設定することができます。

以下のようにセレクタphone_drawable_selector.xmlを作成します:としてEditText

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

使用drawableStartまたはdrawableLeft属性:

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

をAndroidのウィジェットにUIを処理し、更新するための最良の方法は、描画可能ファイルを使用することです背景に直接イメージを使用している。

drawable xmlファイルでAndroidには、押された、フォーカスが当てられた、デフォルトのようなウィジェットのさまざまなステータスを取得できるセレクタのTAGがあります。

以下の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> 

使用drawableStartかなどのEditTextのdrawableLeft属性:

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

</EditText> 
関連する問題