Любая причина, почему `TextInputLayout` будет использовать цвета стиля для рисования курсора, но не подчеркивания? - PullRequest
1 голос
/ 15 октября 2019

Я пытаюсь установить цвет подчеркивания TextInputEditText в TextInputLayout. При установке colorControlActivated на нужный цвет курсор меняет цвет, но подчеркивание не реагирует.

Я пытался:

  • Создание стиля с определением colorControlHighlight, colorControlNormal и colorControlActivated. Настройка тем виджетов как в файле макета, так и в манифесте.
  • Установка фона поля ввода для рисования с подчеркиванием, нарисованным вручную.

Здесь определен стильв values ​​/ themes.xml:

<style name="AppTheme.DetailItem" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
    <item name="android:colorControlNormal">#ff0000</item>
    <item name="android:colorControlHighlight">#0000ff</item>
    <item name="android:colorControlActivated">#ff00ff</item>
</style>

И примененная тема:

<com.google.android.material.textfield.TextInputLayout
    android:theme="@style/AppTheme.DetailItem"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:errorEnabled="true"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/value"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:enabled="false"
        android:maxLines="1"
        android:textAppearance="?textAppearanceBody2"
        tools:text="Name" />
</com.google.android.material.textfield.TextInputLayout>

Я бы ожидал, что подчеркивание TextInputEditText изменит цвет на colorControlActivated при фокусировке,и colorControlNormal когда не сфокусировано. Однако, несмотря ни на что, цвет подчеркивания остается черным, когда не сфокусирован, и colorPrimary, когда фокусируется. Однако курсор изменяется на colorControlActivated, когда поле сфокусировано, поэтому виджет распознает стиль, который я определил, но не использует цвета стиля для рисования подчеркивания.

...