天天看点

Android EditView 多行文本输入

最近在做一个界面优化,用到了和查阅了很多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);
        }

    }
});