在4.x上自定义TextInputLayout的颜色不起作用

时间:2017-04-20 19:04:35

标签: android

我正在syles.xml

中执行以下操作
    <style name="TextLabel" parent="TextAppearance.AppCompat">
        <!-- Hint color and label color in FALSE state -->
        <item name="android:textColorHint">@color/app_white</item>
        <item name="android:textColorHighlight">@color/app_white</item>
        <item name="android:textColorLink">@color/app_white</item>
        <item name="android:textSize">@dimen/app_text_small</item>
        <!-- Label color in TRUE state and bar color FALSE and TRUE State -->
        <item name="colorAccent">@color/app_white</item>
        <item name="colorControlNormal">@color/app_white</item>
        <item name="colorControlActivated">@color/app_white</item>
    </style>

然后将样式设置为TextInputLayout,如下所示:android:theme="@style/TextLabel"

我的问题是它不会将底部边框的颜色设置为白色,也不会将浮动文本设置为白色。至少不是4.1.1和4.2.2任何想法?在5.0及以上版本上运行正常。

enter image description here

2 个答案:

答案 0 :(得分:1)

以这种方式为文本外观创建样式。

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

您的布局实施代码如下。

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

            <EditText
                android:id="@+id/et_Email_Login"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:hint="@string/hint_email" />

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

答案 1 :(得分:0)

显然,问题在于棒棒糖前的操作系统并不知道android:theme属性。所以我所做的是将所有自定义属性从TextLabel样式移动到直接覆盖app compat的缅因style

即。 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

在Lollipop之前,这似乎很好。