对于一款APP中,我们经常会使用到搜索框——SearchView,想必大家都不陌生,今天呢我给大家分享一个我在使用过程中意外发现的一种情况。
SearchView使用时必定涉及到输入法,常用的有搜狗输入法、qq输入法等第三方输入法,安卓系统也给我们提供了自带输入法。一般我们在打字
过程中会出现备选词区域,我们可以自行选择填入SearchView搜索框的内容;但是在使用中发现一种情况,点击某个字母会立即填入搜索框内,
没有出现备选区域,如果mSearchView设置了如下监听事件就会在填入第一个字母(注意是打字时出现的第一个字母,而不是完整的汉字内容)的时候就触发事件
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { Log.i(TAG, "onQueryTextSubmit-->"+query); return false; } @Override public boolean onQueryTextChange(String newText) { //隐藏输入框,该方法未给出 InputMethodUtil.hideInput(StaffInfoActivity.this); return true; }});
解决方案:
<android.support.v7.widget.SearchView android:id="@+id/sv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:iconifiedByDefault="false" android:imeOptions="actionDone" android:inputType="text"/>
<!--android:imeOptions="actionDone"--><!--SearchView增加该属性可以解决使用系统自带输入法,打字立即填入输入框问题,先出现备选词--> 即始终让输入法打字时出现备选区域。 意外中发现的知识,多部手机测试有效,大家可以参考,有不明白的可以留言讨论,以上内容可能有讲解的不详细的地方,望见谅!
时间: 2024-12-28 08:53:27