美文网首页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