有没有办法在1.1.0+中使用TextInputLayout创建非填充的文本输入编辑文本?



我正在尝试从材质组件 1.0.0 迁移到 1.1.0-alpha07,以便能够使用 ExposedDropdown 样式。 然而,它搞砸了我所有的TextInputEditText,因为它们既没有轮廓也没有填充。

我尝试将TextInputEditText框背景设置为透明色,但这最终使它们的填充完全白色,而不是使它们透明并暴露它们背后的内容(这是一种渐变的品牌颜色,跨越超过编辑字段,这就是为什么我不能只将其颜色设置为背景颜色,因为它不适合渐变)。

那么,问题是:有没有办法将老式的非填充 EditTexts 保留在 1.1.0+ 中(同时仍在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属性为文本输入布局放置应用程序范围的样式(也应用上述属性),并提供所需的样式。

作为旁注,这只是指出了困扰该库的易于访问的文档和指南的灾难性缺乏。

相关内容

  • 没有找到相关文章

最新更新