在迁移到最新版本的Material Components(1.1.0-alpha09
)之后,我注意到TextInputLayout
具有一些填充水平填充。我的目标是实现没有背景或轮廓框的旧样式的文本字段。因此,我扩展了一种样式,即Widget.MaterialComponents.TextInputLayout.FilledBox
并将背景色设置为透明。
<style name="Widget.MyApp.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.FilledBox.Dense">
<item name="boxBackgroundColor">@color/transparent</item>
</style>
现在的问题是,在我的应用中,使用这种水平填充(对于填充或轮廓框是必需的),此输入字段看起来很奇怪。
所以我的问题是,如何删除该填充物?
答案 0 :(得分:1)
您可以使用类似的内容:
<com.google.android.material.textfield.TextInputLayout
....
android:hint="Hint text"
style="@style/My.TextInputLayout.FilledBox.Dense" >
然后您可以使用materialThemeOverlay
属性定义(要求版本1.1.0)自定义样式:
<style name="My.TextInputLayout.FilledBox.Dense" parent="Widget.MaterialComponents.TextInputLayout.FilledBox.Dense">
<item name="materialThemeOverlay">@style/MyThemeOverlayFilledDense</item>
</style>
<style name="MyThemeOverlayFilledDense">
<item name="editTextStyle">@style/MyTextInputEditText_filledBox_dense
</item>
</style>
<style name="MyTextInputEditText_filledBox_dense" parent="@style/Widget.MaterialComponents.TextInputEditText.FilledBox.Dense">
<item name="android:paddingStart" ns2:ignore="NewApi">4dp</item>
<item name="android:paddingEnd" ns2:ignore="NewApi">4dp</item>
<item name="android:paddingLeft">4dp</item>
<item name="android:paddingRight">4dp</item>
</style>
这里是结果(具有默认样式和自定义样式):