当使用 TextInputLayout
包装 EditText
时,似乎会自动添加左侧填充,如下面的屏幕截图所示。
布局 XML 中的 EditText
没有添加填充,但是当呈现视图时,似乎在 EditText
上留下了填充。在比较 TextView
下面的 TextInputLayout
时,您可以看到这一点。
如何禁用添加此左填充?
谢谢!
原文由 dazza5000 发布,翻译遵循 CC BY-SA 4.0 许可协议
当使用 TextInputLayout
包装 EditText
时,似乎会自动添加左侧填充,如下面的屏幕截图所示。
布局 XML 中的 EditText
没有添加填充,但是当呈现视图时,似乎在 EditText
上留下了填充。在比较 TextView
下面的 TextInputLayout
时,您可以看到这一点。
如何禁用添加此左填充?
谢谢!
原文由 dazza5000 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 材料组件库 中包含的 TextInputLayout
,您可以使用自定义样式来减少填充。
只需使用类似的东西:
<com.google.android.material.textfield.TextInputLayout
....
android:hint="Hint text"
style="@style/My.TextInputLayout.FilledBox.Padding" >
然后,您可以使用 materialThemeOverlay
属性为 EditText
定义自定义样式:
<style name="My.TextInputLayout.FilledBox.Padding" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
<item name="materialThemeOverlay">@style/MyThemeOverlayFilledPadding</item>
</style>
<style name="MyThemeOverlayFilledPadding">
<item name="editTextStyle">@style/MyTextInputEditText_filledBox_padding</item>
</style>
<style name="MyTextInputEditText_filledBox_padding" parent="@style/Widget.MaterialComponents.TextInputEditText.FilledBox">
<!-- left and right padding -->
<item name="android:paddingStart" ns2:ignore="NewApi">2dp</item>
<item name="android:paddingEnd" ns2:ignore="NewApi">2dp</item>
<item name="android:paddingLeft">2dp</item>
<item name="android:paddingRight">2dp</item>
<!-- top and bottom padding -->
<item name="android:paddingTop">28dp</item>
<item name="android:paddingBottom">12dp</item>
</style>
这里是最终结果:
注意: 它至少需要 1.1.0 版本的 Material Components 库。
原文由 Gabriele Mariotti 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答963 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
1 回答840 阅读✓ 已解决
2 回答949 阅读
2 回答889 阅读
1 回答823 阅读
2 回答692 阅读
您可以将内部 EditText 的开始和结束填充设置为 0dp。
这是一个 显示布局边界 打开的屏幕截图,因此您可以看到提示一直延伸到视图的边缘。