TextInputLayout 轮廓提示颜色

TextInputLayout outline hint color

提问人:ghita 提问时间:7/14/2019 最后编辑:ghita 更新时间:11/3/2020 访问量:7693

问:

我在 TextInputLayout 上有一个奇怪的错误。提示的颜色在对焦时变为白色。com.google.android.material.textfield.TextInputEditText

enter image description here

这是我的设置方式:

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

编辑:添加样式 .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>
Android Kotlin 布局 android-textinputedittext

评论

0赞 sanoJ 7/15/2019
您使用的 material lib 版本是什么?我试过了,效果很好com.google.android.material:material:1.1.0-alpha08
0赞 ghita 7/15/2019
我正在使用com.google.android.material:material:1.1.0-alpha07
0赞 ghita 7/15/2019
我已经更新了,但问题仍然存在。alpha08pixel xl os 8.1
0赞 sanoJ 7/15/2019
对我来说,它在 和 .你能添加你的完整吗alpha07alpha08style.xml
0赞 ghita 7/15/2019
是的,我已经添加了它。一定有什么东西,但我无法弄清楚原因是什么

答:

1赞 Om Prakash Agrahari 7/15/2019 #1

尝试app:hintTextAppearance="@style/hintText"TextInputLayout

<style name="hintText" parent="android:TextAppearance">
    <item name="android:textColor">your color</item>
</style>
16赞 Vijay Tahelramani 7/15/2019 #2

只需在样式中添加提示文本颜色即可。EditText.OutlinedBox

TextInputLayout 指定了用于更改提示和错误颜色的属性。

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

在这里,我指定了两种不同的提示文本颜色 1) 和 2)android:textColorHinthintTextColor

因为这两者的工作方式不同。

android:textColorHint属性将处理 EditText 的提示的文本颜色。

hintTextColor属性将处理大纲框上提示的文本颜色。

评论

0赞 Paul Spiesberger 10/3/2019
太好了,谢谢!它有效,但 Android Studio 在我的 :styles.xmlCannot resolve 'hintTextColor'
0赞 Vijay Tahelramani 10/4/2019
'hintTextColor'不是 Android Style 提供的默认属性。我猜你还没有实现材料设计库。因此,请尝试实现库,然后Android Studio不应显示错误。