Цвет подсказки контура TextInputLayout

У меня странная ошибка в TextInputLayout. Цвет подсказки com.google.android.material.textfield.TextInputEditText становится белым в фокусе.

Цвет подсказки контура TextInputLayout

вот как я это устанавливаю:

<com.google.android.material.textfield.TextInputLayout
                        android:id = "@+id/inputEmail"
                        style = "@style/EditText.OutlinedBox"
                        android:layout_width = "match_parent"
                        android:layout_height = "wrap_content"
                        android:layout_marginStart = "16dp"
                        android:layout_marginTop = "10dp"
                        android:layout_marginEnd = "16dp"
                        app:boxStrokeColor = "@color/colorBrand">

                        <com.google.android.material.textfield.TextInputEditText
                            android:id = "@+id/editTextEmail"
                            android:layout_width = "match_parent"
                            android:layout_height = "wrap_content"
                            android:layout_gravity = "start"
                            android:hint = "@string/edt_hint_email"
                            android:inputType = "textEmailAddress"
                            android:textAlignment = "viewStart" />
                    </com.google.android.material.textfield.TextInputLayout>

..и это стиль:

 <style name = "EditText.OutlinedBox" parent = "Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        <item name = "android:minHeight">56dp</item>
        <item name = "android:textSize">18sp</item>
        <item name = "android:fontFamily">@font/dubai_regular</item>
        <item name = "hintEnabled">true</item>
    </style>

редактировать: добавить style.xml

<?xml version = "1.0" encoding = "utf-8"?>
<resources>

    <style name = "TextAppearance.AppCompat.Title" parent = "TextAppearance.AppCompat.Large">
        <item name = "android:textColor">@color/colorTextPrimary</item>
        <item name = "android:layout_gravity">center_vertical</item>
    </style>


    <style name = "EditText.OutlinedBox" parent = "Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        <item name = "android:minHeight">56dp</item>
        <item name = "android:textSize">18sp</item>
        <item name = "android:fontFamily">@font/dubai_regular</item>
        <item name = "hintEnabled">true</item>
    </style>

    <style name = "Button" parent = "Widget.MaterialComponents.Button">
        <item name = "cornerRadius">10dp</item>
        <item name = "backgroundTint">@color/colorAccent</item>
        <item name = "android:minHeight">56dp</item>
        <item name = "android:textAllCaps">false</item>
        <item name = "android:fontFamily">@font/dubai_bold</item>
        <item name = "android:elevation">0dp</item>
        <item name = "android:stateListAnimator">@null</item>
    </style>


    <style name = "Button.Primary">
        <item name = "backgroundTint">@color/colorAccent</item>
    </style>


    <style name = "DialogAnimation">
        <item name = "android:windowEnterAnimation">@anim/slide_up_dialog</item>
        <item name = "android:windowExitAnimation">@anim/slide_out_down</item>
    </style>

    <style name = "Tag" parent = "TextAppearance.AppCompat">
        <item name = "android:background">@drawable/tag_navy</item>
        <item name = "android:fontFamily">@font/dubai_bold</item>
        <item name = "android:textSize">12sp</item>
        <item name = "android:paddingStart">16dp</item>
        <item name = "android:paddingEnd">16dp</item>
        <item name = "android:paddingTop">6dp</item>
        <item name = "android:paddingBottom">6dp</item>
        <item name = "android:gravity">center</item>
        <item name = "android:textColor">@color/colorWhite</item>
    </style>


    <style name = "Tag.Closed">
        <item name = "android:background">@drawable/ic_tag_closed</item>
        <item name = "android:textAllCaps">true</item>
    </style>

    <style name = "Tab.TextAppearance" parent = "TextAppearance.AppCompat">
        <item name = "android:textSize">14sp</item>
        <item name = "android:fontFamily">@font/dubai_bold</item>
    </style>

</resources>

Какую версию материальной библиотеки вы используете? Я пробовал с com.google.android.material:material:1.1.0-alpha08, и он работал отлично

sanoJ 14.07.2019 18:04

я использую com.google.android.material:material:1.1.0-alpha07

ghita 14.07.2019 18:12

Я обновился до alpha08, но проблема не устранена. pixel xl os 8.1

ghita 14.07.2019 18:17

Для меня это работает как в alpha07, так и в alpha08. Можете ли вы добавить свой полный style.xml

sanoJ 14.07.2019 18:20

да, я добавил это. должно быть что-то, но я не могу понять, что может быть причиной

ghita 14.07.2019 18:53
android:hint = "@string/edt_hint_email добавьте его в TextInputLayout вместо edittext
Santanu Sur 14.07.2019 18:59
6
6
6 052
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте app:hintTextAppearance = "@style/hintText" за TextInputLayout

<style name = "hintText" parent = "android:TextAppearance">
    <item name = "android:textColor">your color</item>
</style>
Ответ принят как подходящий

Просто добавьте цвет текста подсказки в свой стиль EditText.OutlinedBox.

TextInputLayout указали свойство для изменения цвета подсказки и ошибки.

<item name = "android:textColorHint"> #Your Color </item>
<item name = "hintTextColor"> #Your Color </item>

Здесь у меня есть два разных цвета текста подсказки, указанные 1) android:textColorHint и 2) hintTextColor

Потому что это работает по-разному.

android:textColorHint свойство будет обрабатывать цвет текста подсказки EditText.

hintTextColor свойство будет обрабатывать цвет текста подсказки в поле контура.

Большое спасибо! Это работает, но Android Studio отображает ошибку в моем styles.xml: Cannot resolve 'hintTextColor'

Paul Spiesberger 03.10.2019 11:54
'hintTextColor' не является атрибутом по умолчанию, предоставляемым стилем Android. Я предполагаю, что вы не реализовали библиотеку дизайна материалов. поэтому, пожалуйста, попробуйте реализовать библиотеку, тогда студия Android не должна показывать ошибку.
Vijay Tahelramani 04.10.2019 13:55

Другие вопросы по теме