Android Studio中如何让EditText输入内容从顶部首行开始显示
问题:EditText输入内容/光标未从左上角起始
问题复现

当前出问题的布局代码:
<EditText android:id="@+id/et_message" android:layout_width="350dp" android:layout_height="150dp" android:layout_marginLeft="25dp" android:layout_marginTop="390dp" android:background="@color/white"/>
问题原因
EditText默认是单行输入模式,内部内容默认垂直居中对齐,即便手动设置了大高度,光标和输入内容也会停在控件垂直居中的位置,不会自动靠左上角排布。
修复方法
在EditText的属性中补充对应配置即可:
- 添加
android:inputType="textMultiLine",开启多行输入支持 - 添加
android:gravity="top|start",指定控件内部的文本/光标从顶部、起始侧对齐,适配不同语言排版方向,对应常规左到右布局的左上角位置 - 可选配置:添加
android:padding="12dp"(数值可按需调整),避免文字直接贴在控件边框上,优化视觉效果
修复后的完整代码:
<EditText android:id="@+id/et_message" android:layout_width="350dp" android:layout_height="150dp" android:layout_marginLeft="25dp" android:layout_marginTop="390dp" android:background="@color/white" android:inputType="textMultiLine" android:gravity="top|start" android:padding="12dp"/>
注意:不要混淆
android:gravity和android:layout_gravity属性,前者控制控件内部内容的位置,后者控制控件本身在父布局中的位置。
内容的提问来源于stack exchange,提问作者Lim Wei Li
相关产品推荐
相关产品推荐

