android - 在TextInputLayout中更改浮动标签的颜色

时间:2016-07-26 01:50:51

标签: android android-edittext android-theme android-styles android-textinputlayout

我尝试使用TextInputLayout,我成功通过遵循此post更改浮动标签的颜色,使用android:theme="@style/TextLabel"使浮动标签颜色更改。但是,它仅适用于Android 5.0及更高版本。

对于较低版本的Android,我使用app:hintTextAppearance="@style/TextAppearance.AppCompat"。这是我的代码:

<style name="EditTextHint" parent="TextAppearance.AppCompat">
    <item name="android:textColor">#bbbbc9</item>
    <item name="android:textColorHint">#bbbbc9</item>
    <item name="android:textSize">11.5sp</item>
</style>

<android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:hintTextAppearance="@style/EditTextHint">

        <EditText
            android:id="@+id/fet_input_left"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:paddingTop="7.5dp"
            android:textColor="#595968"
            android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>

问题是,当EditText上的用户选项卡时,浮动标签的颜色仅变为#bbbbc9。如果另一个EditText上的用户选项卡,则颜色将更改为默认值。这是图片:

Correct color
正确的颜色:bbbbc9

Error color
错误Colorlt:默认颜色

如果您有任何建议,请告诉我。任何想法都将不胜感激。

提前谢谢!

3 个答案:

答案 0 :(得分:0)

你有开两个style.xml吗?一个是style.xml而另一个是style-21.xml? 在style-21.xml中,它用于android-21 / android 5.0或更高版本 原来的是为了较低的支持

答案 1 :(得分:0)

在&#34;动态&#34;之后,我尝试在TextInputLayout中添加android:textColorHint="#bbbbc9"并且它可以正常工作。这是完整的代码:

<style name="EditTextHint" parent="TextAppearance.AppCompat">
    <item name="android:textColor">#bbbbc9</item>
    <item name="android:textColorHint">#bbbbc9</item>
    <item name="android:textSize">11.5sp</item>
</style>

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColotHint="#bbbbc9"
    app:hintTextAppearance="@style/EditTextHint">

    <EditText
        android:id="@+id/fet_input_left"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:paddingTop="7.5dp"
        android:textColor="#595968"
        android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>

答案 2 :(得分:0)

这对我有用; 将自定义样式设置为;

<style name="TextFloatLabelAppearance" parent="TextAppearance.Design.Hint">
        <!-- Floating label appearance here -->
        <item name="android:textColor">@color/colorLightGrey</item>

    </style>

并使用;

<android.support.design.widget.TextInputLayout
                        android:id="@+id/store_til"
                        app:hintTextAppearance="@style/TextFloatLabelAppearance"
                        android:textColorHint="@color/colorWhite"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">
                        <AutoCompleteTextView
                            android:id="@+id/editText"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:textColor="@color/colorWhite"
                            android:hint="@string/your_string">
                        </AutoCompleteTextView>

这就是我将浮动文本更改为自定义颜色的方法。