如何更改材质设计中TextInputLayout OutlinedBox未聚焦时的颜色?

6
我有一个OutlinedBox TextInputLayout,我想在editText未聚焦时更改框的颜色。如何做到这一点?

enter image description here

1个回答

9
在主题中添加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>

你好,Morteza Rastgoo,Android Studio 显示了“不存在此属性”的错误。你能帮我解决这个问题吗? - Kruti Parekh
@parekhkruti26请确保您扩展<style name="Apptheme" parent="Theme.MaterialComponents.Light.NoActionBar">。 - Morteza Rastgoo
你好Morteza,我按照你说的扩展了相同的主题,但问题是,我使用了最新稳定版本的材料库,即1.0.0,而这个属性是最近alpha版本库的一部分。 - Kruti Parekh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接