Использовать пользовательский цвет текста подсказки для подсказок во включенных и отключенных представлениях - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь добавить пользовательские стили в TextInputLayout и TextInputEditText, и я не могу получить ожидаемые результаты.Мне нужно иметь собственный цвет «A» для подсказок во включенных видах и собственный цвет «B» для подсказок в запрещенных видах.

Сейчас у меня есть стиль с селектором для включенных / отключенных подсказок.,Это стиль:

<style name="CustomTextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
    <item name="boxStrokeColor">@color/input_blue</item>
    <item name="boxStrokeWidth">2dp</item>
    <item name="errorTextAppearance">@style/ErrorText</item>
    <item name="android:textColorHint">@color/selector_edithintcolor</item>
</style>

Вот селектор, вы можете увидеть цвет, чтобы подчеркнуть: enter image description here

Теперь некоторые компоненты вмакет:

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/layout_text_disabled"
    style="@style/CustomTextInputLayoutStyle"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="32dp"
    android:layout_marginTop="32dp"
    android:layout_marginEnd="32dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/layout_phone_not_focused">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/txt_text_disabled"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/hint_deactivated"
        android:inputType="text"
        android:text="@string/txt_disabled" />
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/layout_text_disabled_hint"
    style="@style/CustomTextInputLayoutStyle"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="32dp"
    android:layout_marginTop="32dp"
    android:layout_marginEnd="32dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/layout_text_disabled">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/txt_text_disabled_hint"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/hint_deactivated"
        android:inputType="text" />
</com.google.android.material.textfield.TextInputLayout>

Кроме того, у меня есть кнопка, чтобы изменить состояние этих двух представлений с включенного на отключенное, вот поведение:

Когда представления включены, все как и ожидалось,подсказки имеют зеленый цвет в соответствии с селектором: Hints are showing green enabled color, which is OK

Теперь, когда я отключаю представления, вот что я получаю: Hints show the default color when disabled, not OK

Есть какие-нибудь идеи сделать оранжевые подсказки оранжевыми в соответствии с селектором?Заранее спасибо!

...