Edittext如何在actionDone下设置多行

EditText在imeOptions单独设置为actionDone(acotionSend,actionGo...etc)时,往往不起作用,需要同时设置 inputTypesingleLine=true属性。

但是在实践中发现,这样的设置有个问题就是只能单行输入,不能自动换行,有时候我们不想在界面上多设置一个action button,但是又想让输入框支持多行输入怎么办呢?

设置android:inputType="textMultiLine"可能只在某些输入法下有作用。

这里提供另外一种设置方式,可以确保大部分输入法支持。
我们在xml布局中设置

           <EditText
                android:id="@+id/chat_input_et"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white"
                android:hint="说点什么..."
                android:lineSpacingExtra="4dp"
                android:paddingStart="16dp"
                android:paddingTop="12dp"
                android:inputType="textMultiLine"
                android:maxLines="3"
                android:paddingEnd="16dp"
                android:paddingBottom="12dp"
                android:textColor="@color/black3"
                android:textSize="16sp" />

其中最重要的就是这两句
android:inputType="textMultiLine"
android:maxLines="3"

其他的属性要在代码里设置:

input_et.imeOptions= EditorInfo.IME_ACTION_SEND
input_et.setRawInputType(TYPE_CLASS_TEXT)

这样就可以了,经测试在搜狗,百度,谷歌输入法中均有效。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。