Как изменить материал TextInputLayout OutlinedBox расфокусированный цвет

#android #material-design #android-textinputlayout

#Android #material-дизайн #android-textinputlayout

Вопрос:

У меня есть текстовый ввод Outlinbox, и я хочу изменить цвет поля в несфокусированном режиме EditText.

Как я могу это сделать?

введите описание изображения здесь

Ответ №1:

В теме добавьте colorOnSurface атрибут и назначьте любой цвет, который вы хотите

 <style name="Apptheme"
       parent="Theme.MaterialComponents.Light.NoActionBar">
    <!-- General theme colors -->
    <item name="colorPrimary">@color/material_green_500</item>
    <item name="colorSecondary">@color/material_green_600</item>
    <item name="colorAccent">@color/illiniColorAccent</item>

    <item name="colorOnSurface">@color/blue</item><!--inputtext unfocused color-->
</style>
  

В результате получается:
введите описание изображения здесь
Также colorPrimary это цвет сфокусированного состояния.

Другие атрибуты, которые вы можете настроить, это:

 <item name="enforceMaterialTheme">true</item>
<item name="enforceTextAppearance">true</item>

<item name="boxBackgroundMode">outline</item>
<item name="boxBackgroundColor">@null</item>
<item name="endIconTint">@color/mtrl_outline_end_icon_tint</item>
<item name="boxCollapsedPaddingTop">0dp</item>
<item name="boxCornerRadiusTopStart">@dimen/mtrl_textinput_box_corner_radius_medium</item>
<item name="boxCornerRadiusTopEnd">@dimen/mtrl_textinput_box_corner_radius_medium</item>
<item name="boxCornerRadiusBottomEnd">@dimen/mtrl_textinput_box_corner_radius_medium</item>
<item name="boxCornerRadiusBottomStart">@dimen/mtrl_textinput_box_corner_radius_medium</item>
<item name="boxStrokeColor">@color/mtrl_outlined_stroke_color</item>

<item name="counterTextAppearance">?attr/textAppearanceCaption</item>
<item name="counterOverflowTextAppearance">?attr/textAppearanceCaption</item>
<item name="errorTextAppearance">?attr/textAppearanceCaption</item>
<item name="helperTextTextAppearance">?attr/textAppearanceCaption</item>
<item name="hintTextAppearance">?attr/textAppearanceCaption</item>

<item name="counterTextColor">@color/mtrl_indicator_text_color</item>
<item name="counterOverflowTextColor">@color/mtrl_error</item>
<item name="errorTextColor">@color/mtrl_error</item>
<item name="helperTextTextColor">@color/mtrl_indicator_text_color</item>
<!-- The color of the label when it is collapsed and the text field is active -->
<item name="hintTextColor">?attr/colorPrimary</item>
<!-- The color of the label in all other text field states (such as resting and disabled) -->
<item name="android:textColorHint">@color/mtrl_indicator_text_color</item>

<item name="shapeAppearance">?attr/shapeAppearanceSmallComponent</item>
<item name="shapeAppearanceOverlay">@null</item>
  

Комментарии:

1. Привет, Morteza Rastgoo, такого атрибута не существует, это ошибка, показанная Android Studio. Не могли бы вы, пожалуйста, помочь мне решить эту проблему?

2. @parekhkruti26 убедитесь, что вы расширили <название стиля=»Apptheme» parent =»Theme. Компоненты материала. Свет. Панель действий отсутствует»>

3. Привет, Мортеза, я расширил ту же тему, что и вы сказали, но проблема была в том, что я использовал последнюю стабильную версию material library, которая была 1.0.0 , и этот атрибут, я полагаю, является частью последних альфа-версий библиотеки.