android - TextInputLayout - boxBackgroundColor 样式属性在 Android 中不起作用
问题描述
我在我的应用程序中使用大纲文本输入布局。我想改变焦点的背景颜色,但我无法使用boxBackgroundColor
样式属性来实现它。我的布局和样式代码添加如下:
布局
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_username"
style="@style/TextInputLoginTheme"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginTop="32dp"
android:layout_marginRight="16dp"
app:hintTextColor="@color/login_hint_color">
<com.google.android.material.textfield.TextInputEditText
style="@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/username"
android:imeOptions="actionNext"
android:textColor="#38465A"
android:inputType="text"/>
</com.google.android.material.textfield.TextInputLayout>
主题
<style name="TextInputLoginTheme" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="boxStrokeColor">@color/login_outlined_stroke_color</item>
<item name="boxBackgroundColor">@color/login_box_background_color</item>
<item name="boxBackgroundMode">outline</item>
</style>
login_box_background_color
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white" android:state_focused="true" />
<item android:color="#EFF2F5" android:state_hovered="true" />
<item android:color="#EFF2F5" android:state_enabled="false" />
<item android:color="#EFF2F5" />
</selector>
材料依赖性
implementation 'com.google.android.material:material:1.2.1'
背景颜色不会在焦点上变为白色。
解决方案
仅填充框支持背景颜色。当与 BOX_BACKGROUND_FILLED 以外的盒子变体一起使用时,盒子背景颜色可能无法按预期工作。
app:boxBackgroundMode="filled"
// 添加
我的替代解决方案;
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_username"
style="@style/TextInputLoginTheme"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginTop="32dp"
android:layout_marginRight="16dp"
app:boxBackgroundMode="filled"
app:hintTextColor="@color/login_hint_color">
推荐阅读
- python - NoReverseMatch 在 /cart/add-to-cart/1/ 为“single_product”反向但未找到参数。尝试了 1 种模式:['products/(?P
.*)/$'] - kubernetes - 手动 AKS PV 失败并出现“New-SmbGlobalMapping MountVolume.SetUp failed for volume”错误
- javascript - 点击添加或删除类 - Javascript
- rust - 类型构造函数是否实现了 Fn?
- html - 如何通过html链接本地文件
- python - librosa 生成的色谱文件如何解释为一组音乐键?
- java - No adapter attached in Recycler View
- react-native - CALL_AND_RETRY_LAST 分配在博览会上反应本机失败
- node.js - 如何在 Node.js 中使用公钥实现证书固定?
- rust - 使用参数调用 libc::c_void-Pointer 作为 Rust 中的函数