TextInputLayout - 如果EditText不为空且未聚焦,则更改浮动标签提示颜色

时间:2017-05-17 08:55:01

标签: android android-textinputlayout

Res state - 提示颜色为黑色,良好
enter image description here

聚焦状态,空 - 提示颜色灰色,良好
enter image description here

聚焦状态,不是空的 - 提示颜色灰色,良好
enter image description here

Res状态,不是空的 - 提示颜色黑色,不好,应该是灰色的 enter image description here

如果editText不为空且没有聚焦,如何更改提示颜色?

这是我目前的代码:

<android.support.design.widget.TextInputLayout
    android:id="@+id/email"
    style="@style/AuthInput"
    android:layout_marginTop="32dp"
    android:hint="@string/hint_email"
    android:inputType="textEmailAddress"
    android:theme="@style/AuthInput"
    app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout">

    <EditText
        android:id="@+id/edit_email"
        style="@style/AuthEditText"
        android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>

和样式:

<style name="AuthInput">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColorHint">@color/black</item>
    <item name="android:paddingLeft">0dp</item>
</style>

<style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/inputHintActive</item>
</style>

3 个答案:

答案 0 :(得分:0)

您可以通过

更改提示颜色
editText.setHintTextColor(getResources().getColor(R.color.white));

如果您想清除编辑文本的焦点,请使用

editText.clearFocus();

答案 1 :(得分:0)

更改TextInputLayout样式

您的TextInputLayout

<android.support.design.widget.TextInputLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:theme="@style/TextLabel">

    <android.support.v7.widget.AppCompatEditText
        android:id="@+id/edit_id"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="hintText"/>

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

根据您的测试<{1}}样式的颜色

TextInputLayout

答案 2 :(得分:0)

尝试以下代码:

<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/black</item>
    <item name="colorControlNormal">@color/transparant</item>
    <item name="colorControlHighlight">@color/black</item>
    <item name="colorControlActivated">@color/transparant</item>
    <item name="android:textColorHint">@color/black</item> // set grey color for hint
</style>

Screenshot