Androidx材质TextInput颜色不变

时间:2019-03-05 11:45:08

标签: android material-design androidx

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

 <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)-填充文本字段时以及跳转到角落时。 当TextInput获得焦点时,标签会从THEME(而不是我应用的样式)更改为colorAccent颜色

我的问题是-如何仅使用XML来使提示标签根据文本的存在(而不是集中在TextInput上)改变颜色?我以前曾经(在支持库中)看到过这样做的例子,但是我自己却无法达到这样的效果。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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似乎充满了问题。