今天遇到了一个问题是,需求要求项目的一个EditText,实现想苹果app一样, 在输入法的软键盘上显示搜索的操作。
遇到这个问题的第一个想法就是给EditText设置一个android:ImeOptions="actionSearch";
然后,运行,测试,发现实际效果并没有想的那样。
疑惑之余,开始找问题,又换成在代码中设置
edittext.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
结果发现还是不行,这下就有点郁闷了。之前也做过的项目,也用到了这种方式,怎么就不行了呢。
于是,找到了之前写的EditText,对比了两个设置的属性。发现唯一的差别就是,之前的输入框按照要求只能显示一行的内容,因此多加了一条属性android:singleLine="true";那好,我也把这句话加上,结果测试,成功。
分析了一下原因,才明白,键盘上的回车是用来换行使用的。他的优先级比ImeOptions中的值要高(暂且这么认为)。当你设置了singleLine之后,回车换行的作用也就没有了。这时候你的actionSearch就生效了。
特此记录。