如何在android中更改TextInputLayout的浮动标签位置
我有一个矩形的编辑文本,它位于TextInputLayout中。 我想在浮动标签和编辑文本的矩形边界之间留一些边距,但我不能这样做。我尝试了不同的边距参数,但没有效果。 在图像中,您可以看到浮动标签与矩形编辑文本的上边界粘在一起。但我想在标签和上边界之间留点空间。 提前准备好 下面是EditText的XML代码如何在android中更改TextInputLayout的浮动标签位置,android,android-edittext,androiddesignsupport,android-textinputlayout,Android,Android Edittext,Androiddesignsupport,Android Textinputlayout,我有一个矩形的编辑文本,它位于TextInputLayout中。 我想在浮动标签和编辑文本的矩形边界之间留一些边距,但我不能这样做。我尝试了不同的边距参数,但没有效果。 在图像中,您可以看到浮动标签与矩形编辑文本的上边界粘在一起。但我想在标签和上边界之间留点空间。 提前准备好 下面是EditText的XML代码 下面是可绘制背景的代码 <shape xmlns:android="http://schemas.android.com/apk/res/android" andr
下面是可绘制背景的代码
<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>
<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>
/>
如果在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>
希望这有帮助:)我相信您无法自定义标签位置文本输入布局。
使用TranslationY不是更改浮动标签位置的合适解决方案,因为它将转换任何视图。如果您找到任何其他答案,请告诉我。您可以手动为TextInputLayout指定高度,如:
android:layout_height="100dp"
这对我有用
使用带有图层列表的可绘制背景从顶部获得一些填充
用法
<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>
<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>
为此,您只需将背景从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"/>
您只需在可绘制文件中指定padding top。只需添加到您的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,如果使用固定高度(测试代码100%工作)则使用填充值增加EditText的高度。您的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/>
使用此链接解决您的问题。希望这对你有帮助。最好的。你可以参考这个答案:你可以参考这个链接:这个安卓系统的任何解决方案:translationY=“10dp”它将翻译编辑文本或事实上的任何视图。是的,你的解决方案根据问题工作,但它也改变了原始提示的位置(当它没有焦点时)。谢谢回复并同意你的评论不工作。此外,你的代码是实心矩形,我的问题是空心矩形。好吧,你可以通过编辑可绘制图形来选择空心。我已经更新了答案。这一定行得通。做了一些技巧,但现在edittext光标和提示看起来在不聚焦时更倾向于矩形的上边界。我认为根据手机的屏幕分辨率/大小,它将是可见的。它的工作完全符合预期。但您还需要将TextInputLayout的重力=底部设置为顶部显示的额外高度。