Я пытаюсь создать 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
) к обоим состояниям подсказки - когда он заполняет текстовое поле и когда он переходит на угол.
Когда TextInput получает фокус, метка меняет цвет на colorAccent
цвет от ТЕМЫ, а не от стиля, который я применил
Мой вопрос: как я могу изменить цвет метки подсказки в зависимости от наличия текста (не на фокусе TextInput или нет), используя только XML? Я видел примеры людей, которые делали это раньше (в библиотеках поддержки), но я сам не смог достичь такого результата.