10

是否可以将那些浮动标签(电子邮件/密码)放在盒子内。基本上减少提示和实际输入之间的空间。

在此处输入图像描述

我尝试填充顶部/底部。editText 的顶部/底部边距。但他们都没有给出我正在寻找的结果。


 <android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:id="@+id/emailWrapper"
    app:hintTextAppearance="@style/floatingLabel">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="54dp"
        android:paddingLeft="17dp"
        android:paddingRight="17dp"
        android:id="@+id/txtEmail"
        android:singleLine="true"
        android:inputType="textEmailAddress"
        android:hint="@string/emailPlaceholder"
        android:background="@drawable/btn_empty_stroke" />

</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:hintTextAppearance="@style/floatingLabel"
    android:id="@+id/passwordWrapper"
    android:layout_below="@+id/emailWrapper">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="54dp"
        android:paddingLeft="17dp"
        android:paddingRight="17dp"
        android:singleLine="true"
        android:inputType="textPassword"
        android:id="@+id/txtPassword"
        android:paddingTop="0dp"
        android:text="HELLO"
        android:hint="@string/passwordPlaceholder"
        android:background="@drawable/btn_empty_stroke" />

</android.support.design.widget.TextInputLayout>
4

2 回答 2

16

感谢@Frank N.Stein 的评论和降低高度的想法。它成功了。

回答我自己的问题。因为其他人可能会提出这个问题。

所以基本上我必须为 TextInputLayout 提供准确的高度并保持 EditText 的高度相同。还将 paddingTop 赋予 TextInputLayout 和 clipToPadding false。所以最终的文本框 xml 就这样出来了。

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_marginTop="20dp"
    android:layout_height="54dp"
    android:gravity="bottom"
    android:paddingTop="4dp"
    android:clipToPadding="false"  // above 3 lines are important
    android:id="@+id/emailWrapper"
    app:hintTextAppearance="@style/floatingLabel">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="54dp"
        android:paddingLeft="17dp"
        android:paddingRight="17dp"
        android:id="@+id/txtEmail"
        android:singleLine="true"
        android:inputType="textEmailAddress"
        android:hint="@string/emailPlaceholder"
        android:text="a@a.com"
        android:background="@drawable/btn_empty_stroke" />

</android.support.design.widget.TextInputLayout>
于 2015-10-12T17:17:19.287 回答
-1

只需添加到您的EditText自定义背景:

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape android:shape="rectangle">
                <padding android:bottom="4dp"/> // your padding value
            </shape>
        </item>
    <!-- customize your background items if you need -->
    </layer-list>

    <android.support.design.widget.TextInputLayout
     ...>
        <android.support.design.widget.TextInputEditText
            ...
            android:background="@style/your_custom_background"/>

如果您使用固定高度,则将其应用于您的并使用您的填充值EditText增加您的高度。EditText

于 2017-08-08T08:11:55.703 回答