如何更改TextInputLayout的EditText下划线颜色(Android)

8

我正在使用 Android Design Library 的 TextinputLayout,但无法自定义 TextinputLayout 内 EditText 的下划线颜色。请帮忙。

   <android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_pincode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/input_layout_city"
        android:layout_marginTop="@dimen/_10sdp"
        android:textColorHint="#000000"
        app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">

        <EditText
            android:id="@+id/input_pincode"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Pincode*"
            android:textSize="@dimen/_13sdp" />

    </android.support.design.widget.TextInputLayout>


<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/black</item>
    <item name="android:textSize">@dimen/_13sdp</item>
    <item name="colorControlNormal">@color/black</item>

</style>

请分享有助于更好了解的截图。抱歉,这是一个误解。您需要提供要翻译的英文文本,我会将其翻译成中文。 - Chirag Arora
1
请查看此链接(http://stackoverflow.com/questions/39219521/when-edittext-is-select-theme-style-does-not-change/39219679#39219679) - MinnuKaAnae
在你的android.support.design.widget.TextInputLayout中添加android:theme="@style/MyAccount",并在你的样式文件中添加 <style name="MyAccount" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorControlNormal">@color/colorAccent</item> </style> - Ashwin H
在Google搜索了一个小时之后,唯一对我有用的答案是这个:https://dev59.com/BVwZ5IYBdhLWcg3wLdsF#36543554 - EpicPandaForce
3个回答

17

将此样式添加到您的styles.xml文件中:

<style name="TextLabel" parent="TextAppearance.AppCompat">

        <!-- Hint color and label color in FALSE state -->
        <item name="android:textColorHint">#fff</item>
        <item name="android:textSize">20sp</item>

        <!-- Label color in TRUE state and bar color FALSE and TRUE State -->

        <item name="colorAccent">@color/colorPrimaryDark</item>
        <item name="colorControlNormal">#e34b1c</item>
        <item name="colorControlActivated">#e34b1c</item>
</style>
然后按照以下方式将“ TextLabel”主题添加到您的Textinputlayout中
<android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_pincode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/input_layout_city"
        android:layout_marginTop="@dimen/_10sdp"
        android:textColorHint="#000000"
        app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"
        android:theme="@style/TextLabel">

...

在styles.xml文件中,尝试使用您想要的颜色。


谢谢,这个对我有用。到目前为止最佳答案。 - kinsley kajiva
拯救了我的一天。谢谢。 - Ego Slayer
它在我的端上导致了崩溃。而且'TextAppearence.App.TextInputLayout'是在@Amad的答案中定义的,而不是你的,你甚至和他一样拼写错误。 - Chandler

11

在你的TextAppearence.App.TextInputLayout样式中,你需要添加colorControlActivatedcolorControlHighlight

<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/black</item>
    <item name="android:textSize">@dimen/_13sdp</item>
    <item name="colorControlNormal">@color/black</item>

    //added attributes
    <item name="colorControlActivated">@color/colorPrimary</item> 
    <item name="colorControlHighlight">@color/colorPrimary</item>

</style>

编辑:

你可以移除 colorControlHighlight。在你的情况下,它并不是必要的。 colorControlHightlight 是用来应用颜色于波纹、列表选中等方面。

你可以参考 @Gaëtan Maisse 的回答 这里


-1

你应该尝试进行更改

<color name="colorAccent">#YOURCOLOR</color>

Google Material Design总是参考这种颜色,以便在任何地方都具有相同的“操作”颜色


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接