有没有办法在 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 属性为文本输入布局设置应用程序范围的样式(也应用上述属性)并提供所需的样式。

附带说明一下,这只是指出了困扰该库的灾难性缺乏易于访问的文档和指南。