android - Android Material Components 主题 - 当字段聚焦时更改 TextInputLayout/TextInputEditText 标签和下划线的颜色
问题描述
我正在尝试切换到新的 Material Components 主题,而我似乎无法更改的一件事是标签的 TextInputLayout/TextInputEditText 颜色和字段聚焦时的下划线。
当我使用 AppCompat 主题时,它为此使用了 colorAccent,但新的 MaterialComponents 主题使用了 colorPrimary。
如何覆盖 MaterialComponents 主题以仅在这种情况下使用 colorAccent?
我尝试过的事情:
- 为 TextInputLayout 和 TextInputEditText 扩展 Widget.MaterialComponents 样式并覆盖 colorPrimary
- 为 TextInputLayout 和 TextInputEditText 扩展 Widget.MaterialComponents 样式并覆盖 colorAccent
- 在 TextInputEditText 上为 backgroundTint 使用选择器颜色
解决方案
您可以首先定义新主题 - 例如:
<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>
结果(请忽略框,它是差异故事的一部分):
推荐阅读
- c++ - 尝试包含该头文件时,在头文件中包含特定函数的原因和错误
- arrays - &a[i][j] 如何被评估为 *(a+i)+j
- c++ - 在 LC 简单问题中使用向量不断导致某种 seg fault 错误
- windows - 如何在 sourceforge 获得 mingw-w64?
- node.js - 从 gulp 3.0 迁移到 gulp 4.0
- integer - 在 Odoo 13 中整数字段的计算字段中出现问题
- google-sheets - 使用随机数据在逗号分隔的行中查找重复值
- java - 正确计算插入排序比较的次数
- python - Django中的这个用户参数是什么?
- swift - 发送字典数组 Alamofire + swift