下の画像に示されているベースラインでEditTextを設計する必要があり、フォーカスを受け取ると他の色に変更されます!
私は次を使用しています。
<EditText
Android:id="@+id/mobilenumber"
Android:drawableLeft="@drawable/mobile"
Android:drawablePadding="15dp"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:inputType="number"
Android:background="@drawable/edt_bg"
Android:singleLine="true"
Android:textColorHint="#FFFFFF"
Android:hint="@string/mobilenumber"
Android:layout_marginTop="20dp"
Android:layout_gravity="center"
Android:padding="5dp"
Android:imeOptions="actionNext"
Android:maxLength="10"
Android:textColor="#ffffff"
Android:textCursorDrawable="@null"
/>
それで、これをどうやって処理するかを教えてください。
EditTextのテーマを追加できます
<style name="EditTextTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorControlNormal">@color/primary</item>
<item name="colorControlActivated">@color/primary</item>
<item name="colorControlHighlight">@color/primary</item>
</style>
また、EditTextで次のように使用できます。
<EditText
Android:id="@+id/edtCode"
Android:layout_width="match_parent"
Android:layout_height="40dp"
.......................
Android:theme="@style/EditTextTheme">
</EditText>
あなたのeditTextスタイルでこれを使用してください
<item name="backgroundTint">@color/focus_tint_list</item>
focus_tint_list.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_focused="true" Android:color="?attr/colorAccent"/>
<item Android:state_focused="false" Android:color="#999999"/>
</selector>
カスタムカラーのホロカラージェネレーターをお試しください。
セレクターを作成し、EditText
の背景として設定できます
res/drawable/edit_text.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item
Android:state_window_focused="false"
Android:state_enabled="true"
Android:drawable="@drawable/textfield_default" />
<item
Android:state_window_focused="false"
Android:state_enabled="false"
Android:drawable="@drawable/textfield_disabled" />
<item
Android:state_pressed="true"
Android:drawable="@drawable/textfield_pressed" />
<item
Android:state_enabled="true"
Android:state_focused="true"
Android:drawable="@drawable/textfield_selected" />
<item
Android:state_enabled="true"
Android:drawable="@drawable/textfield_default" />
<item
Android:state_focused="true"
Android:drawable="@drawable/textfield_disabled_selected" />
<item
Android:drawable="@drawable/textfield_disabled" />
</selector>
レイアウト:
<EditText
Android:id="@+id/mobilenumber"
....
Android:background="@drawable/edit_text" />
同じことが必要でしたが、次の方法で解決しました。
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_focused="true" Android:state_window_focused="true">
<shape>
<stroke Android:color="@color/blue_500" Android:width="2dp" />
<corners Android:radius="45dp"/>
</shape>
</item>
<item Android:state_focused="false" Android:state_window_focused="false">
<shape>
<stroke Android:color="@color/grey_600" Android:width="2dp"/>
<corners Android:radius="45dp"/>
</shape>
</item>
</selector>
EditTextがフォーカスされているときにベースラインを変更するには、プロジェクトのcolors.xmlファイルに移動して、「colorAccent」値を変更するだけです。
res/values/colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
...
<color name="colorAccent">#DESIRED_COLOR</color>
</resources>`