Android中如何为TextInputLayout的提示与输入文本设置不同对齐方式
解决TextInputLayout提示左对齐、EditText输入文本居中的问题
很简单,只需要分别给TextInputLayout和EditText设置对应的属性就能实现需求,不需要复杂的自定义控件。
具体修改方案:
- 给
TextInputLayout设置android:hintAlignment="viewStart",控制提示文本对齐到起始位置(该属性适配左右布局,比直接用start更通用); - 给内部的
EditText设置android:gravity="center",让输入的文本居中显示。
修改后的完整XML代码片段:
<android.support.design.widget.TextInputLayout android:id="@+id/email" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" android:hintAlignment="viewStart" android:hint="请输入邮箱"> <!-- 替换为你的提示文本 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:inputType="textEmailAddress" /> <!-- 根据需求设置输入类型 --> </android.support.design.widget.TextInputLayout>
兼容低版本补充说明:
hintAlignment属性从API 26开始支持,如果需要兼容更低版本,可以通过自定义样式实现:
- 在
styles.xml中定义提示文本样式:
<style name="HintTextStyle" parent="TextAppearance.Design.Hint"> <item name="android:gravity">start</item> </style>
- 在
TextInputLayout中引用该样式:
<android.support.design.widget.TextInputLayout ... app:hintTextAppearance="@style/HintTextStyle">
内容的提问来源于stack exchange,提问作者sharath
相关产品推荐
相关产品推荐

