删除 TextInputLayout 额外的顶部填充
Removing TextInputLayout extra top padding
TextInputLayout 似乎总是在顶部有一些额外的填充(不管所有 margins/paddings 都设置为 0):
布局如下:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/txt_amount"
style="@style/EditTextStyle"
android:hint="@string/hint_amount"
android:inputType="numberDecimal"/>
</android.support.design.widget.TextInputLayout>
如何删除这个多余的space?
在 EditText 中添加这一行
android:translationY="-10dp"
您可以通过将 app:hintEnabled="false"
设置为 TextInputLayout 来删除 AppCompatEditText 上方的额外 space,但在您重新启用它之前它不会显示提示。
有关更多信息,请转到 Android Developer site -TextInputLayout
结帐下面的代码
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintEnabled="false">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/txt_amount"
style="@style/EditTextStyle"
android:hint="@string/hint_amount"
android:inputType="numberDecimal"/>
</android.support.design.widget.TextInputLayout>
希望对您有所帮助..
@拉杰什
你可以用这个
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColorHint="@android:color/white">
<com.bugle.customviews.RobotoLightEditText
android:id="@+id/edtName"
style="@style/StyledTilEditText"
android:hint="@string/name"
android:imeOptions="actionNext"
android:inputType="textCapWords" />
</android.support.design.widget.TextInputLayout>
接受的答案在版本上对我不起作用 - 1.2.1
所以我做了一些实验并意识到填充实际上不是来自 TextInputLayout
,而是来自 TextInputEditText
。所以首先我从中删除了填充,但它看起来不均匀,所以我将自定义填充设置为 TextInputEditText
并且它工作正常。只需将此行 android:padding="16dp"
添加到 TextInputEditText
中,用您想要的值替换 16dp。
具有这样的结构:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_project"
style="@style/LoginTextInputLayoutStyle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
app:errorEnabled="false">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/totalPiecesProduct"
android:layout_gravity="center"
android:gravity="center"
android:padding="0dp"
android:textSize="13sp"
style="@style/TextInputEditTextStyle"/>
</com.google.android.material.textfield.TextInputLayout>
关键是:
app:errorEnabled="false"
在 TextInputLayout
`android:padding="0dp"` in `TextInputEditText`
之前:
之后
您可以通过覆盖TextInputStyle的默认填充样式来实现,(Material版本应在1.1.0以上)
<style name="CustomInputLayoutPadding" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
<item name="boxBackgroundColor">@color/transparent</item>
<item name="materialThemeOverlay">@style/CustomOverlayFilledPadding</item>
</style>
然后
<style name="CustomeOverlayFilledPadding">
<item name="editTextStyle">@style/CustomTextInputEditPaddingStyle</item>
</style>
然后
<style name="CustomTextInputEditPaddingStyle" parent="@style/Widget.MaterialComponents.TextInputEditText.FilledBox">
<item name="android:paddingStart" ns2:ignore="NewApi">2dp</item>
<item name="android:paddingEnd" ns2:ignore="NewApi">2dp</item>
<item name="android:paddingLeft">0dp</item>
<item name="android:paddingRight">2dp</item>
<item name="android:paddingTop">28dp</item>
<item name="android:paddingBottom">12dp</item>
</style>
我已经在 TextInputEditText 中使用设置手动填充
android:paddingHorizontal="@dimen/_12sdp"
android:paddingVertical="@dimen/_10sdp"
TextInputLayout 似乎总是在顶部有一些额外的填充(不管所有 margins/paddings 都设置为 0):
布局如下:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/txt_amount"
style="@style/EditTextStyle"
android:hint="@string/hint_amount"
android:inputType="numberDecimal"/>
</android.support.design.widget.TextInputLayout>
如何删除这个多余的space?
在 EditText 中添加这一行
android:translationY="-10dp"
您可以通过将 app:hintEnabled="false"
设置为 TextInputLayout 来删除 AppCompatEditText 上方的额外 space,但在您重新启用它之前它不会显示提示。
有关更多信息,请转到 Android Developer site -TextInputLayout
结帐下面的代码
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintEnabled="false">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/txt_amount"
style="@style/EditTextStyle"
android:hint="@string/hint_amount"
android:inputType="numberDecimal"/>
</android.support.design.widget.TextInputLayout>
希望对您有所帮助..
@拉杰什
你可以用这个
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColorHint="@android:color/white">
<com.bugle.customviews.RobotoLightEditText
android:id="@+id/edtName"
style="@style/StyledTilEditText"
android:hint="@string/name"
android:imeOptions="actionNext"
android:inputType="textCapWords" />
</android.support.design.widget.TextInputLayout>
接受的答案在版本上对我不起作用 - 1.2.1
所以我做了一些实验并意识到填充实际上不是来自 TextInputLayout
,而是来自 TextInputEditText
。所以首先我从中删除了填充,但它看起来不均匀,所以我将自定义填充设置为 TextInputEditText
并且它工作正常。只需将此行 android:padding="16dp"
添加到 TextInputEditText
中,用您想要的值替换 16dp。
具有这样的结构:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_project"
style="@style/LoginTextInputLayoutStyle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
app:errorEnabled="false">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/totalPiecesProduct"
android:layout_gravity="center"
android:gravity="center"
android:padding="0dp"
android:textSize="13sp"
style="@style/TextInputEditTextStyle"/>
</com.google.android.material.textfield.TextInputLayout>
关键是:
app:errorEnabled="false"
在 TextInputLayout
`android:padding="0dp"` in `TextInputEditText`
之前:
之后
您可以通过覆盖TextInputStyle的默认填充样式来实现,(Material版本应在1.1.0以上)
<style name="CustomInputLayoutPadding" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
<item name="boxBackgroundColor">@color/transparent</item>
<item name="materialThemeOverlay">@style/CustomOverlayFilledPadding</item>
</style>
然后
<style name="CustomeOverlayFilledPadding">
<item name="editTextStyle">@style/CustomTextInputEditPaddingStyle</item>
</style>
然后
<style name="CustomTextInputEditPaddingStyle" parent="@style/Widget.MaterialComponents.TextInputEditText.FilledBox">
<item name="android:paddingStart" ns2:ignore="NewApi">2dp</item>
<item name="android:paddingEnd" ns2:ignore="NewApi">2dp</item>
<item name="android:paddingLeft">0dp</item>
<item name="android:paddingRight">2dp</item>
<item name="android:paddingTop">28dp</item>
<item name="android:paddingBottom">12dp</item>
</style>
我已经在 TextInputEditText 中使用设置手动填充
android:paddingHorizontal="@dimen/_12sdp"
android:paddingVertical="@dimen/_10sdp"