Я использую привязку данных вместе со списком 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.
Спасибо.