首页 > 解决方案 > Android Material Components 主题 - 当字段聚焦时更改 TextInputLayout/TextInputEditText 标签和下划线的颜色

问题描述

我正在尝试切换到新的 Material Components 主题,而我似乎无法更改的一件事是标签的 TextInputLayout/TextInputEditText 颜色和字段聚焦时的下划线。

当我使用 AppCompat 主题时,它为此使用了 colorAccent,但新的 MaterialComponents 主题使用了 colorPrimary。

如何覆盖 MaterialComponents 主题以仅在这种情况下使用 colorAccent?

我尝试过的事情:

标签: androidmaterial-design

解决方案


您可以首先定义新主题 - 例如:

<style name="Theme2" parent="AppTheme">
    <item name="colorPrimary">@android:color/holo_green_dark</item>
</style>

...然后像这样使用它:

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/filter_box_hint"
    android:theme="@style/Theme2">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/etFilter"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textNoSuggestions"
        android:maxLines="1"
        android:paddingTop="4dp"
        android:theme="@style/Theme2" />
</com.google.android.material.textfield.TextInputLayout>

结果(请忽略框,它是差异故事的一部分):

在此处输入图像描述


推荐阅读