Androidx Material TextInput颜色不会改变

问题描述 投票:0回答:1

我正在尝试在我的应用程序中创建一个com.google.android.material.textfield.TextInputLayout aka TextInputLayout,并根据字段中文本的存在使提示文本更改其颜色。现在,此元素的代码如下所示:

 <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/sign_up_email_text_input"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:hint="@string/sign_up_email_hint"
            app:errorEnabled="true"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintVertical_bias="0.57"
            app:layout_constraintWidth_percent="0.78"
            android:textColorHighlight="#FF00FF"
            android:textColorHint="#00FF00"
            style="@style/TextInputLayout"
    >

        <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/sign_up_email_edit_text"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:inputType="textEmailAddress"
        />
    </com.google.android.material.textfield.TextInputLayout>

我正在应用一种风格

<style name="TextInputLayout" parent="ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox">
    <item name="android:textColorHint">#FFFFFF</item>
    <item name="android:textColor">#FFFF00</item>
    <item name="colorAccent">#FF00FF</item>
    <item name="colorControlNormal">#FF0000</item>
    <item name="colorControlActivated">#00FF00</item>
    <item name="colorControlHighlight">#0000FF</item>
</style>

但是这种风格仅适用于提示颜色,当它处于非活动状态时,它会将相同的颜色(android:textColorHint)应用于提示的两种状态 - 当它填充textField时以及当它跳转到角落时。当TextInput获得焦点时,标签会将颜色更改为THEME中的colorAccent颜色,而不是我应用的样式

我的问题是 - 如何使用XML,根据文本的存在(不是关注或不关注TextInput)使提示标签更改颜色?我曾经看到人们这样做的例子(在支持库上),但我自己无法实现这样的结果。

android material-design androidx
1个回答
0
投票

迁移到AndroidX时面临同样的问题。 更改父主题

<style name="TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
    <item name="android:textColorHint">#FFFFFF</item>
    <item name="android:textColor">#FFFF00</item>
    <item name="colorAccent">#FF00FF</item>
    <item name="colorControlNormal">#FF0000</item>
    <item name="colorControlActivated">#00FF00</item>
    <item name="colorControlHighlight">#0000FF</item>
</style>

0
投票

有同样的问题。问题出在com.google.android.material:material:1.1.0-alphaXX上。问题已恢复为com.google.android.material:material:1.0.0。

附注:当使用com.google.android.material:material:1.1.0-alpha08时,我甚至无法对包含TextInputLayout的布局进行充气。 1.1.0似乎充满了问题。

© www.soinside.com 2019 - 2024. All rights reserved.