我正在尝试从材料组件1.0.0迁移到1.1.0-alpha07,以便能够使用ExposedDropdown样式。
但是,这会弄乱我所有的TextInputEditText
,因为它们既不会概述也不会填充。
我尝试将TextInputEditText
的盒子背景设置为透明颜色,但是最终使它们的填充完全变成白色,而不是使它们透明并暴露其背后的内容(这是一种具有跨度梯度的品牌颜色除了编辑字段之外,这就是为什么我不能将其颜色设置为背景颜色,因为它不适合渐变)。
所以,问题是:有什么办法可以将老式的非填充EditText保留在1.1.0+中(同时仍在TextInputLayout
中使用它们)?
注意: 我不得不说,排除一个简单的选项来使编辑字段不填充(以前是这样)是一个巨大的错误,因为它几乎完全关闭了无痛迁移到1.1.0的过程,您现在基本上必须迫使设计更改首先。
答案 0 :(得分:0)
将TextInputEditText
背景设置为透明对我来说很有效。
我主题的父级是Theme.MaterialComponents.DayNight.DarkActionBar
。
另一种可能性是为您的ThemeOverlay
使用editTextStyle
:
<style name="Widget.YourTheme.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.FilledBox>
<item name="materialThemeOverlay">@style/ThemeOverlay.YourTheme.TextInputEditText</item>
</style>
<style name="ThemeOverlay.YourTheme.TextInputEditText parent="ThemeOverlay.MaterialComponents.TextInputEditText.FilledBox">
<item name="editTextStyle">@style/Widget.YourTheme.TextInputEditText item>
</style>
<style name="Widget.YourTheme.TextInputEditText parent="Widget.MaterialComponents.TextInputEditText.FilledBox">
<item name="android:background">@android:color/transparent</item>
</style>
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.YourTheme.TextInputLayout"
...
<TextInputEditText>
...
</TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
答案 1 :(得分:0)
我设法找到了一个相当简单的答案。
解决方案是将app:boxBackgroundMode="none"
与填充框样式配合使用。
您还可以在应用程序主题中使用textInputStyle
属性,为文本输入布局(也应用上述属性)设置整个应用程序样式。
作为旁注,这只是指出灾难性的缺乏易于访问的文档和指南,困扰着该库。