Подсказка TextInputLayout не работает при использовании привязки данных - PullRequest
0 голосов
/ 27 апреля 2020

Я использую привязку данных вместе со списком TextInputLayout / TextInputEditText, как показано в xml.

<com.google.android.material.textfield.TextInputLayout
                android:id="@+id/lastname_input_layout"
                style="@style/TextInputLayout"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                app:endIconMode="clear_text"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/firstname_input_layout"
                app:visible="@{viewModel.showFields}">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/lastname_input"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/lastname"
                    android:inputType="textCapWords"
                    android:text="@={viewModel.lastName}"
                    android:textAppearance="@style/TextAppearance.Input" />

            </com.google.android.material.textfield.TextInputLayout>

            <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/email_input_layout"
                style="@style/TextInputLayout"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                app:endIconMode="clear_text"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/lastname_input_layout"
                app:visible="@{viewModel.showFields}">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/email_input"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@{viewModel.watchMediaTextHint}"
                    android:inputType="@{viewModel.watchMediaInputType}"
                    android:text="@={viewModel.mediaText}"
                    android:textAppearance="@style/TextAppearance.Input" />

            </com.google.android.material.textfield.TextInputLayout>

Как вы можете видеть оба поля теоретически одинаковы, единственное отличие состоит в том, что одно из них имеет текст hint, заданный строковым ресурсом, а другое - привязкой данных. Оба имеют одинаковый стиль, внешний вид текста и т. Д., Но подсказка TextInputEditText, использующая привязку данных, имеет разный цвет. Кроме того, когда представление получает фокус, метка не анимируется, как это происходит с первым полем.

Установка подсказки со строковым ресурсом возвращает это поведение к go назад к обычному, любые идеи почему происходит эта аномалия? Я бы предпочел решить эту проблему с помощью привязки данных, а не программным решением c.

Спасибо.

...