Как и сотни вопросов, я хочу изменить цвет подсказки. Первоначально я хотел задать в комментариях другой такой вопрос (без ответа), но у меня недостаточно репутации, поэтому я спрашиваю здесь.
Я хочу, чтобы подсказка в TextInputEditText была одного цвета, и когда это плавает, чтобы быть другим. В других постах ответы всегда заключаются в том, как изменить подсказку, когда сфокусировано представление. Это не то, что я хочу, я могу это сделать. Я хочу изменить цвет подсказки, если текст редактирования не пуст. Я использую дизайн материалов textInputLayout и textInputEditText. Пробовал разные стили и селекторы и до сих пор не могу это сделать. Попытка расширить TextInputLayout, но я не знаю, как связать его с EditText, чтобы я мог использовать OnTextListener для дочернего представления.
Мой код до сих пор может изменять цвет подсказки только тогда, когда представление сфокусировано .
Стили:
<style name="TextInputLayoutAppearance" parent="Widget.Design.TextInputLayout">
<item name="colorControlNormal">@color/green_03</item>
<item name="colorControlActivated">@color/green_03</item>
<item name="hintTextColor">@color/dark_blue_60</item>
</style>
<style name="MyHintStyle" parent="@android:style/TextAppearance">
<!-- Hint color when floating and focused-->
<item name="android:textColor">@color/dark_blue_60</item>
<!-- doesn't change anything -->
<item name="android:textColorHint">@color/dark_blue</item>
<item name="colorAccent">@color/green_03</item>
<item name="colorControlNormal">@color/green_03</item>
<item name="colorControlActivated">@color/green_03</item>
</style>
XML:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:textColorHint="@color/dark_blue"
android:theme="@style/TextInputLayoutAppearance"
app:errorEnabled="true"
app:hintTextAppearance="@style/MyHintStyle">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/textInputEditText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="@color/green_03"
android:hint="@string/phoneNumber"
android:textColor="@color/dark_blue"
android:inputType="number"
android:maxLength="3"
android:text="12" />
</com.google.android.material.textfield.TextInputLayout>
Есть ли способ расширить и изменить его программно для всех видов или установить глобальный слушатель или правильный способ использовать стили и селекторы.