最近在做一个界面优化,用到了和查阅了很多editview相关的知识,这里记录一下
Android editView默认是单行输入,输入的内容自动往左移动,编辑起来比较困难.实现多行输入的两种方式如下:
1.在xml布局中
<EditText
android:id="@+id/edit_test"
android:layout_width="match_parent"
android:layout_height="100dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:textSize="14.67sp"
android:singleLine="false"
android:maxLines="5"
android:inputType="textMultiLine"
android:scrollHorizontally="false"
/>
2.在代码中需要多个属性设置实现输入多行
editText.setSingleLine(false);
editText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
editText.setMaxLines(5);
editText.setHorizontallyScrolling(false);
因为界面的内容很多,所以产品要求在输入的时候是多行文本输入,但是输入结束之后收成单行展示,所以需要在获得焦点和失去焦点的时候动态设置editView的多行和单行属性,直接上代码:
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
editText.setSingleLine(false);
editText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
editText.setMaxLines(5);
editText.setHorizontallyScrolling(false);
} else {
editText.setSingleLine(true);
editText.setInputType(InputType.TYPE_CLASS_TEXT);
editText.setMaxLines(1);
editText.setHorizontallyScrolling(true);
}
}
});