У меня есть EditText внутри TextInputLayout. Я хотел бы программно изменить цвет textColorHint TextInputLayout. Поскольку мне нужно было бы включать и отключать editTexts, пока пользователь заполняет формы. Например, форма для забвения пароля с 5 editText и 3 кнопками. Пользователь должен отправить свой адрес электронной почты, проверочный код, новый и подтвердить пароль. Только когда их электронная почта отправлена, код подтверждения EditText, кнопка отправки подтверждения включена. и так далее.
Следовательно, чтобы показать отключенный, я хотел бы, чтобы текст EditText (заполнитель), также известный как android:hint в EditText xml, подчеркивал, чтобы он был немного серым/более прозрачным. Это можно решить с помощью setAlpha(.5f); но я хотел бы изменить цвет. Измените мой textPlaceholderColor (серый) на более светлый серый цвет.
Я пробовал метод app:hintTextApperance=@style/TextInputLayoutHintText, но android:TextColorHint, похоже, не работает внутри. Я даже пытался изменить стиль, используя codeLayout.setHintTextAppearance(R.style.TextInputLayoutHintTextDisabled); Я также пробовал метод селектора в EditText. Но кажется, что android:TextColorHint не работает в EditText; установка цвета для него не работает. Это должно быть изменено внутри TextInputLayout.
в моем файле стиля
<!-- Legacy TextField Theme-->
<style name="TextInputLayoutAppearance" parent="Widget.Design.TextInputLayout">
<item name="colorControlNormal">@color/textPlaceholderColor </item>
<item name="colorControlActivated">@color/textFieldColor</item>
<item name="colorControlHighlight">@color/textFieldColor</item>
</style>
<!-- TextField Hint Theme-->
<style name="TextInputLayoutHintText">
<item name="android:textColor">@color/textPlaceholderColor</item>
<item name="android:textSize">16sp</item>
<item name="android:textColorHint">@color/disableTextColor </item>
</style>
<!-- TextField Text Color Hint Theme Disabled-->
<style name="TextInputLayoutHintTextDisabled">
<item name="android:textColor">@color/disableTextColor </item>
<item name="android:textSize">16sp</item>
<item name="android:textColorHint">@color/disableTextColor </item>
<item name="hintTextColor">@color/disableTextColor </item>
</style>
в моем XML-файле активности
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/forgetTextInputLayout2"
style="@style/TextInputLayoutAppearance"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:elevation="12dp"
app:endIconMode="clear_text"
android:textColorHint="@color/textPlaceholderColor"
app:hintTextAppearance="@style/TextInputLayoutHintText"
app:layout_constraintEnd_toEndOf="@+id/forgetForm"
app:layout_constraintStart_toStartOf="@+id/forgetForm"
app:layout_constraintTop_toBottomOf="@+id/forget_submit_email">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/forgetVerification"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/open_sans"
android:hint="@string/ForgetForm3"
android:inputType="textPersonName"
android:singleLine="true"
android:textColor="@drawable/edit_text_selector"
android:textCursorDrawable="@drawable/cursor_color"
android:textSize="18sp" />
</com.google.android.material.textfield.TextInputLayout>
цветной файл
<color name="colorPrimary">#00BEBA</color>
<color name="colorPrimaryDark">#00BEBA</color>
<color name="colorAccent">#F60606</color>
<color name="white">#FFFFFF</color>
<color name="green">#17B3AB</color>
<color name="version">#0B0008</color>
<color name="appBackgroundColor">#00BEBA</color>
<color name="textPlaceholderColor">#807E7E</color>
<color name="textFieldColor">#000000</color>
<color name="textFieldCursorColor">#FB0000</color>
<color name="textFieldHightLightColor">#2196F3</color>
<color name="customGreen">#92CFCD</color>
<color name="defaultLinkBlue">#007aff</color>
<color name="facebookBlue">#3B5998</color>
<color name="disableTextColor">#3C95A1A0</color>