android - 如何更改 TextInputLayout 提示文本的背景颜色
问题描述
我正在编写 TextInputLayout 的视图
我的 style.xml 是:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="MyTextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
<item name="boxStrokeColor">@color/colorPrimary</item>
<item name="hintTextColor">@color/colorPrimary</item>
<item name="boxBackgroundColor">@android:color/white</item>
<item name="boxStrokeWidth">2dp</item>
</style>
</resources>
我在 color.xml 中的颜色覆盖是:
<color name="mtrl_textinput_default_box_stroke_color" tools:override="true">#c2261a</color>
我的 TextInput 布局是:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/weightInput"
style="@style/MyTextInputLayoutStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:hint="@string/hint_weight"
app:errorEnabled="true"
app:helperTextEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewTitle">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:imeOptions="actionDone"
android:importantForAutofill="no"
android:inputType="numberDecimal"
android:maxLength="5"
android:maxLines="1"
android:singleLine="true"
android:textAlignment="center"
android:textColor="@color/colorPrimary" />
</com.google.android.material.textfield.TextInputLayout>
最后的结果是
我们可以看到提示文本的背景颜色是透明的。我怎样才能找到那个观点。
我尝试了这种风格但没有成功:
我的 style.xml 是:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="HintText" parent="TextAppearance.Design.Hint">
<item name="android:textColor">@color/colorPrimary</item>
<item name="android:background">@android:color/white</item>
</style>
<style name="MyTextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
<item name="boxStrokeColor">@color/colorPrimary</item>
<item name="hintTextColor">@color/colorPrimary</item>
<item name="hintTextAppearance">@style/HintText</item>
<item name="boxBackgroundColor">@android:color/white</item>
<item name="boxStrokeWidth">2dp</item>
</style>
</resources>
解决方案
更新到材料组件 1.4.0-alpha01 解决了这个问题。这是负责的提交:https ://github.com/material-components/material-components-android/commit/6015a4e901dc55a02f86e12703820d520684f95e
推荐阅读
- javascript - 通过网页使用访问令牌检索 GitLab 工件文件并保存到磁盘
- javascript - 如何在不向最终用户提供 url 的情况下将数据工作室报告嵌入网站?
- python - 错误:“目标路径存在但不是目录,不会继续”pip安装问题
- java - 从当前时间戳中减去 3 周
- javascript - onClick 事件打开所有 Material-UI 对话框
- ios - 使用 NSDictionary 从 JSONObject 检索数据
- javascript - 对于正则表达式,集合中的句号 (.) 是否需要转义?
- python - 如何使用 Windows 安装 sparse_dot_topn
- c# - 为什么 MeasureString 坚持文本需要额外的高度?
- java - 如何在不使用glViewPort的情况下在opengl上有一个固定的坐标系