边框中的TextInputLayout.OutlinedBox渐变颜色

时间:2019-01-26 07:42:31

标签: android android-layout material-design

在我的应用程序中,我正在使用TextInputLayout和更新的材质主题style=Widget.MaterialComponents.TextInputLayout.OutlinedBox

我必须为每个TextInputLayout的边框添加渐变颜色(从蓝色到绿色),就像下一张图片一样。

enter image description here

问题是我没有找到关于如何为边框实现渐变颜色效果的任何解决方案。我可以更改边框的颜色,但是颜色是纯色的,就像下一个gif:

enter image description here

这就是我创建TextInputLayout的方式

<android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            style="@style/Widget.Design.TextInputLayout">

        <android.support.design.widget.TextInputEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Label"
                style="@style/MyTextInputEditText"/>

    </android.support.design.widget.TextInputLayout>

样式:

 <style name="Widget.Design.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        <item name="boxStrokeColor">@color/edit_text_box_border</item>
        <item name="hintTextAppearance">@style/AppTheme.TextFloatLabelAppearance</item>

    </style>

    <style name="MyTextInputEditText" parent="ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox.Dense">
        <item name="android:textColor">@color/colorCharcoalGrey</item>
    </style>

edit_text_box_border.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/colorBlue" android:state_focused="true"/>
    <item android:color="@color/colorBlue" android:state_hovered="true"/>
    <item android:color="@color/colorBlue" android:state_enabled="false"/>
    <item android:color="@color/colorBlue"/>
</selector>

是否可以在材质主题已更新的TextInputLayout中添加渐变效果?

如果是,该怎么办?

先谢谢。任何帮助/建议,将不胜感激。

0 个答案:

没有答案