如何禁用 TextInputLayout 上的填充?

新手上路,请多包涵

当使用 TextInputLayout 包装 EditText 时,似乎会自动添加左侧填充,如下面的屏幕截图所示。

在此处输入图像描述

布局 XML 中的 EditText 没有添加填充,但是当呈现视图时,似乎在 EditText 上留下了填充。在比较 TextView 下面的 TextInputLayout 时,您可以看到这一点。

如何禁用添加此左填充?

谢谢!

原文由 dazza5000 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 354
2 个回答

您可以将内部 EditText 的开始和结束填充设置为 0dp。

 <com.google.android.material.textfield.TextInputLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content">

  <com.google.android.material.textfield.TextInputEditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingStart="0dp"
    android:paddingEnd="0dp" />

</com.google.android.material.textfield.TextInputLayout>

这是一个 显示布局边界 打开的屏幕截图,因此您可以看到提示一直延伸到视图的边缘。

EditTextNoPadding

原文由 Andrew Orobator 发布,翻译遵循 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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题