Цвет подчеркивания со стилем FilledBox определяется атрибутом boxStrokeColor
. Вы можете добавить его в свой макет или в свой собственный стиль. Примерно так:
<style name="...." parent="Widget.MaterialComponents.TextInputLayout.FilledBox" >
<!-- underline color in FilledBox style -->
<item name="boxStrokeColor">@color/custom_selector_filled_stroke_color</item>
....
</style>
Это значение по умолчанию для селектора:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?attr/colorPrimary" android:state_focused="true"/>
<!-- 4% overlay over 42% colorOnSurface -->
<item android:alpha="0.46" android:color="?attr/colorOnSurface" android:state_hovered="true"/>
<item android:alpha="0.38" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
<item android:alpha="0.42" android:color="?attr/colorOnSurface"/>
</selector>
Цвет, используемый при фокусировке, - это первая строка <item android:color="?attr/colorPrimary" android:state_focused="true"/>
![enter image description here](https://i.stack.imgur.com/Fj3jy.png)
В вашем коде используйте (удалите app:backgroundTint
в EditText
)
<com.google.android.material.textfield.TextInputLayout
android:hint="@string/email"
android:theme="@style/EditTextHintWhite"
..>
<com.google.android.material.textfield.TextInputEditText
android:inputType="textEmailAddress"
android:maxLines="1"
android:textColor="@color/white"
../>
</com.google.android.material.textfield.TextInputLayout>
с (удалите родительский элемент):
<style name="EditTextHintWhite">
<item name="colorError">@color/white</item>
<item name="colorPrimary">@color/...</item>
<item name="colorOnSurface">@color/...</item>
</style>
Если вы хотите, чтобы пользовательское подчеркивание использовало атрибут app:boxStrokeColor="@color/text_input_layout_stroke_color"
в вашем TextInputLayout
.
Примечание: используйте com.google.android.material.textfield.TextInputEditText
вместо androidx.appcompat.widget.AppCompatEditText
.