#android #android-textinputlayout
#Android #android-textinputlayout
Вопрос:
Я использую несколько Textinputlayouts в своем приложении. Как я могу узнать, какой цвет lf его ошибка?
Комментарии:
1. какого цвета? Есть много цветов, текста, штриха, подсказки, фона…..
Ответ №1:
Цвет ошибки по умолчанию зависит от colorError
атрибута.
Текущее значение в светлой теме равно:
<color name="design_default_color_error">#B00020</color>
Если вы хотите использовать его в другом атрибуте, вы можете скопировать это значение или использовать ?attr/colorError
. Пример:
<item name="strokeColor">?attr/colorError</item>
Если вы хотите получить программно это значение, вы можете использовать:
MaterialColors.getColor(fab, R.attr.colorError)
Комментарии:
1. Спасибо. На самом деле я не хочу менять какой-либо цвет. Я хочу иметь цвет ошибки, чтобы использовать его в другом месте.
Ответ №2:
Цвет по умолчанию для ошибки компоновки — красный. Вы можете изменить его, если хотите. Вам просто нужно добавить строки в style.xml
<style name="TextInputLayoutError" parent="@android:style/TextAppearance">
<item name="android:textColor">your color</item>
<item name="android:textSize">12sp</item>
</style>
Используйте тег below в своем теге TextInputLayout
app:errorTextAppearance="@style/TextInputLayoutError">
Комментарии:
1. Это не совсем правильно. Цвет основан на
colorError
атрибуте и необязательно должен быть красным. Лучший способ изменить errorTextColor — это использоватьerrorTextColor
атрибут в layout / style, и в любом случае таким образом вы не меняете цвет подсказки и цвет обводки.2. Да, я согласен с вами, но, как правило, он красный, и мы не можем получить точный цветовой код, который использует TextInputLayout. Этот код предназначен только для изменения цвета текста для ошибки. Если вы хотите изменить другие свойства, вы можете добавить их в style .
3. Если вам нужен цвет текста ошибки в текущем состоянии, вы можете использовать
getErrorCurrentTextColors
4. Спасибо. На самом деле я не хочу менять какой-либо цвет. Я хочу иметь цвет ошибки, чтобы использовать его в другом месте.