一,在安卓开发聊天界面的时候,经常会有一种需求,把软件盘的回车键修改为“发送”,同时edittext可以多行显示。
虽然看起来,是一个比较小的需求,但是这里却有两个坑存在。
(1)把软件盘回车键修改为“发送”,但是edittext只能单行显示
(2)edittext能多行显示,但是软件盘回车键不能修改为“发送”
二,如何做到两点兼顾呢/p>
这里我们需要先了解四个功能性属性和方法:(1)修改软件盘回车键 (2)想要修改软件盘的回车键,不是你想修改就能生效的,这里头还有个重要的前提。(3)设定edittext多行显示 (4)edittext也不是说你想让多行显示,就能多行显示的,这里头也有个重要的前提。
三,下面分别对以四点做出重要说明:
(1)修改软件盘回车键方式有两种:① editText.setImeOptions(EditorInfo.IME_ACTION_SEND) ②在输入框editText的布局文件中写 :android:imeOptions=”actionSend”、
(2)修改软件盘回车键的重要前提,方式同样两种:①editText.setInputType(TYPE_TEXT_FLAG_MULTI_LINE); ②android:inputType=”text”
特别提醒:不设置inputType的话,设置软件盘的回车键不生效
(3)设置editText多行显示 只有一种方式,在代码中设置,如果在edittext的xml文件中设置不会生效的,代码动态设置方式:editText.setMaxLines(4);
(4)让edittext能够多行显示的重要前提,方法有两种,同样是在代码中动态设置:①editText.setHorizontallyScrolling(false); ②editText.setSingleLine(false)
特别提醒:不设置第(4)条的话,editText多行显示不会生效。
下面附上我自己写的代码,供大家参考:
如上这是我的editText的xml,可以看到里面没有任何相应的设置,我的所有有效设置都是在java代码中动态完成的。如下:
最终效果如下图:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!