17

我有一个矩形编辑文本,它位于 TextInputLayout 内。我想在浮动标签和编辑文本的矩形边界之间放置一些边距,但我无法做到这一点。我尝试了不同的边距参数,但没有锻炼。 这是编辑文本的屏幕截图

在图像中,您可以看到浮动标签与矩形编辑文本的上边界粘在一起。但我想要标签和上边界之间有一些空间。提前谢谢。

下面是 EditText 的 XML 代码

 <android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"

           >

            <EditText
                android:id="@+id/input_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="email"

                android:background="@drawable/textbg"/>

下面是背景可绘制的代码

<shape xmlns:android="http://schemas.android.com/apk/res/android"

    android:shape="rectangle">
    <stroke android:width="1dp"
        android:color="@color/colorPrimary"/>
    />

    <padding
        android:left="15dp"
        android:right="15dp"
        android:top="15dp"
        android:bottom="15dp" />
</shape>
4

7 回答 7

4

您可以手动将高度提供给 TextInputLayout ,例如:

android:layout_height="100dp"

它对我有用。

于 2016-10-26T10:14:14.093 回答
3

我相信你不能自定义标签位置TextInputLayout。并且使用 TranslationY 不是更改浮动标签位置的合适解决方案,因为它会翻译任何视图。如果您找到任何其他答案,请告诉我。

于 2015-10-29T08:37:01.163 回答
2

使用带有图层列表的可绘制背景从顶部获取一些填充。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="10dp">
        <shape android:shape="rectangle">
            <!-- view background color -->
            <solid android:color="@android:color/transparent"></solid>

            <stroke
                android:width="1dp"
                android:color="@color/colorAccent" />

            <!-- If you want to add some padding -->
            <padding
                android:bottom="10dp"
                android:left="10dp"
                android:right="10dp"
                android:top="10dp"></padding>
        </shape>
    </item>
</layer-list>

用法

<android.support.design.widget.TextInputLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:hint="@string/label_quantity"
  android:textColorHint="@color/colorOrange"
  app:errorEnabled="true"
  app:errorTextAppearance="@style/ErrorText">

  <android.support.design.widget.TextInputEditText
    android:layout_width="match_parent"
    android:layout_height="@dimen/login_edit_text_height"
    android:background="@drawable/drawable_background"
    android:imeOptions="actionNext"
    android:inputType="number"
    android:maxLines="1"/> 

</android.support.design.widget.TextInputLayout>
于 2016-12-16T07:26:00.340 回答
2

(测试代码 100% 工作)您的 TextInputLayout 高度应该大于 EditText。然后设置重力。

 <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="65dp"
                android:gravity="bottom">

                   <EditText
                    android:id="@+id/etName"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"/>

 <android.support.design.widget.TextInputLayout/>
于 2019-11-08T12:52:30.507 回答
0

为此,您只需将背景放在 edttext 的 textinputlayout 中,如下所示

<android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/textbg"
       >

        <EditText
            android:id="@+id/input_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="email"/>

你只需要在可绘制文件中指定填充顶部。

于 2017-06-14T04:06:12.770 回答
0

只需添加到您的 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:top="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:06:18.940 回答
0

如果您在 EditText 上设置了自定义背景,则 android:paddingTop 属性 simple 无法更改浮动提示文本和编辑文本的间距。因此,如果您为 EditText 设置了自定义背景,则可以在 EditText 中使用 android:translationY 属性。

 <android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/input_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="email"
                android:translationY="10dp" 
                android:background="@drawable/textbg"/>

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

希望这可以帮助 :)

于 2015-10-27T06:59:33.333 回答