Мне нужен цвет нижней строки TextInputEditText, как показано ниже.
Цвет по умолчанию => Серый
Если пользователь вводит текст, цвет линии должен оставаться синим. В настоящее время, если я ввожу ввод в первый текст редактирования и перехожу к другому тексту редактирования, первый снова становится серым.
Edittext пуст => Серый
Мне также требуется анимация подсказок по умолчанию для
TextInputLayout
, поэтому я не могу использоватьEditText
. Я реализовал это, используяTextWatcher
, как здесь, но не работает.
Вот мой код
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/EditScreenTextInputLayoutStyle"
app:hintTextAppearance="@style/etHintText">
<android.support.design.widget.TextInputEditText
android:id="@+id/etAddress"
style="@style/et_14_blk_sngl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:inputType="text"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
Стиль :
<style name="EditScreenTextInputLayoutStyle">
<item name="colorControlNormal">@color/gray</item>
<item name="colorControlActivated">@color/blue</item>
<item name="colorControlHighlight">@color/blue</item></style>
А также,
private void UpdateLineColor()
{
if (!TextUtils.IsEmpty(this.Text))
{
DrawableCompat.SetTint(this.Background, ContextCompat.GetColor(this.Context, Resource.Color.blue));
if (Build.VERSION.SdkInt >= Build.VERSION_CODES.Lollipop)
{
ColorStateList colorStateList = ColorStateList.ValueOf(Resources.GetColor(Resource.Color.blue));
this.BackgroundTintList = colorStateList;
ViewCompat.SetBackgroundTintList(this, colorStateList);
}
this.Background.SetColorFilter(Resources.GetColor(Resource.Color.blue), PorterDuff.Mode.SrcAtop);
}
else
{
DrawableCompat.SetTint(this.Background, ContextCompat.GetColor(this.Context, Resource.Color.gray));
if (Build.VERSION.SdkInt >= Build.VERSION_CODES.Lollipop)
{
ColorStateList colorStateList = ColorStateList.ValueOf(Resources.GetColor(Resource.Color.gray));
this.BackgroundTintList = colorStateList;
ViewCompat.SetBackgroundTintList(this, colorStateList);
}
this.Background.SetColorFilter(Resources.GetColor(Resource.Color.gray), PorterDuff.Mode.SrcAtop);
}
}
android:theme
- person Leo Zhu - MSFT   schedule 10.05.2019