美文网首页Android开发编程学习随笔程序员
Edittext如何在actionDone下设置多行

Edittext如何在actionDone下设置多行

作者: 一涯 | 来源:发表于2020-05-14 09:59 被阅读0次

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)

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

相关文章

网友评论

    本文标题:Edittext如何在actionDone下设置多行

    本文链接:https://www.haomeiwen.com/subject/ycmznhtx.html