我有一个矩形的编辑文本,它位于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>
答案 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/>