有没有办法在 1.1.0+ 中使用 TextInputLayout 创建非填充的 TextInputEditText?
Is there a way to create non-filled TextInputEditText with TextInputLayout in 1.1.0+?
我正在尝试从 Material 组件 1.0.0 迁移到 1.1.0-alpha07,以便能够使用 ExposedDropdown 样式。
但是,它弄乱了我所有的 TextInputEditText
,因为它们既没有轮廓也没有填充。
我试过将 TextInputEditText
框背景设置为透明色,但这最终使它们的填充完全变白,而不是使它们透明并暴露它们背后的内容(这是一种带有渐变的品牌颜色跨度超过编辑字段,这就是为什么我不能将其颜色设置为背景颜色,因为它不适合渐变)。
所以,问题是:有什么方法可以在 1.1.0+ 中保留老式的非填充 EditText(同时仍在 TextInputLayout
中使用它们)?
注意:
我不得不说,排除一个简单的选项让编辑字段不被填充(就像以前那样)是一个巨大的错误,因为它几乎完全关闭了到 1.1.0 的无痛迁移,你现在基本上必须强制你的设计改变首先.
将 TextInputEditText
背景设置为透明对我有用。
我主题的父项是 Theme.MaterialComponents.DayNight.DarkActionBar
.
另一种可能性是为您的 editTextStyle
:
使用 ThemeOverlay
<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>
我设法找到了一个相当简单的问题答案。
解决方案是使用 app:boxBackgroundMode="none"
填充框样式。
您还可以使用应用程序主题中的 textInputStyle
属性为文本输入布局设置应用程序范围的样式(也应用上述属性)并提供所需的样式。
附带说明一下,这只是指出了困扰该库的灾难性缺乏易于访问的文档和指南。
我正在尝试从 Material 组件 1.0.0 迁移到 1.1.0-alpha07,以便能够使用 ExposedDropdown 样式。
但是,它弄乱了我所有的 TextInputEditText
,因为它们既没有轮廓也没有填充。
我试过将 TextInputEditText
框背景设置为透明色,但这最终使它们的填充完全变白,而不是使它们透明并暴露它们背后的内容(这是一种带有渐变的品牌颜色跨度超过编辑字段,这就是为什么我不能将其颜色设置为背景颜色,因为它不适合渐变)。
所以,问题是:有什么方法可以在 1.1.0+ 中保留老式的非填充 EditText(同时仍在 TextInputLayout
中使用它们)?
注意: 我不得不说,排除一个简单的选项让编辑字段不被填充(就像以前那样)是一个巨大的错误,因为它几乎完全关闭了到 1.1.0 的无痛迁移,你现在基本上必须强制你的设计改变首先.
将 TextInputEditText
背景设置为透明对我有用。
我主题的父项是 Theme.MaterialComponents.DayNight.DarkActionBar
.
另一种可能性是为您的 editTextStyle
:
ThemeOverlay
<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>
我设法找到了一个相当简单的问题答案。
解决方案是使用 app:boxBackgroundMode="none"
填充框样式。
您还可以使用应用程序主题中的 textInputStyle
属性为文本输入布局设置应用程序范围的样式(也应用上述属性)并提供所需的样式。
附带说明一下,这只是指出了困扰该库的灾难性缺乏易于访问的文档和指南。