如何改变TextinputLayout的edittext下划线android的颜色

时间:2016-08-30 07:33:29

标签: android

我正在使用android设计库的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>

3 个答案:

答案 0 :(得分:12)

将此样式添加到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中使用您想要的颜色。

答案 1 :(得分:7)

使用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ëtanMaisse回答here

答案 2 :(得分:-1)

您应该尝试更改

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

Google Material Design始终引用此颜色,以便为“动作”提供相同的颜色