删除TextInputLayout额外的顶部填充

时间:2017-04-21 11:36:26

标签: android padding android-textinputlayout

TextInputLayout似乎总是在顶部有一些额外的填充(无论所有边距/填充都设置为0):

enter image description here

布局如下:

<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>

如何删除这个额外的空间?

6 个答案:

答案 0 :(得分:17)

您可以通过将app:hintEnabled="false"设置为TextInputLayout来移除AppCompatEditText上方的额外空间,但在重新启用之前它不会显示提示。

有关详情,请转到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>

希望这有用..

@Rajesh

答案 1 :(得分:1)

具有这样的结构:

<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`

之前:

enter image description here

之后

enter image description here

答案 2 :(得分:0)

您可以使用此

  <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>

答案 3 :(得分:0)

接受的答案在版本1.2.1上对我不起作用,因此我做了一些实验,发现填充实际上不是来自TextInputLayout,而是来自{{1} }。因此,我首先从中删除了填充,但看起来不均匀,因此我将自定义填充设置为TextInputEditText,并且效果很好。只需将这行TextInputEditText添加到android:padding="16dp"并用所需的值替换16dp。

答案 4 :(得分:0)

您可以通过覆盖TextInputStyle的默认填充样式来做到这一点(材料版本应高于1.1.0)

private void dateTimePicker1_KeyDown(object sender, KeyEventArgs e)
{
    e.SuppressKeyPress = true;
}

然后

 <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>

答案 5 :(得分:-3)

在EditText中添加此行

<强>机器人:translationY =&#34; -10dp&#34;

相关问题