如何在android中更改TextInputLayout的浮动标签位置

时间:2015-10-27 06:48:09

标签: android android-edittext androiddesignsupport android-textinputlayout

我有一个矩形的编辑文本,它位于TextInputLayout中。 我想在浮动标签和编辑文本的矩形边界之间加一些边距,但我无法做到这一点。我尝试了不同的边距参数,但没有锻炼。 here is the screen shot of the Edit text

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

下面的

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

7 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

您可以手动将高度赋予TextInputLayout Like:

android:layout_height="100dp"

它适合我。

答案 2 :(得分:1)

  

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

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

答案 3 :(得分: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>

希望这会有所帮助:)

答案 4 :(得分: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"/>

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

答案 5 :(得分: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的高度(如果使用修复高度)

答案 6 :(得分:0)

(经过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/>