更改EditText的颜色底线

Pha*_*inh 0 android android-edittext android-styles android-design-library

我有一个EditTextTextInputLayout.

<android.support.design.widget.TextInputLayout
    android:id="@+id/inputTextUser"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout" >

    <EditText
        android:id="@+id/userName"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:ems="10"
        android:hint="@string/user_hint"
        android:singleLine="true"
        android:textColor="@color/white"
        android:textSize="16sp" >

        <requestFocus />
    </EditText>
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

我希望将底线颜色更改为白色,我尝试了这个解决方案,但它不能与我合作:

    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColorHint">@color/white</item>
        <item name="colorControlNormal">@color/white</item>
        <item name="colorControlActivated">@color/white</item>
        <item name="colorControlHighlight">@color/white</item>
    </style>

    <style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
        <item name="android:textColor">@color/light_blue_A400</item>
        <item name="android:textSize">12sp</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

这是风格主题后的图像:

在此输入图像描述 在此输入图像描述

有什么建议可以在不聚焦和聚焦时改变颜色底线?

Aka*_*ngh 6

用这个 :

mEditText.getBackground().setColorFilter(YOUR_COLOR_HERE, PorterDuff.Mode.SRC_IN);
Run Code Online (Sandbox Code Playgroud)

例如:

mEditText.getBackground().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_IN)
Run Code Online (Sandbox Code Playgroud)