SearchView使用

对于一款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增加该属性可以解决使用系统自带输入法,打字立即填入输入框问题,先出现备选词-->

即始终让输入法打字时出现备选区域。

意外中发现的知识,多部手机测试有效,大家可以参考,有不明白的可以留言讨论,以上内容可能有讲解的不详细的地方,望见谅!

转载于:https://www.cnblogs.com/abel-han/p/6370854.html

SearchView是一个Android widget,可以在Toolbar或ActionBar中添加搜索栏。它允许用户输入搜索查询并显示搜索结果。 使用步骤: 1. 在布局文件中添加SearchView: ```xml <androidx.appcompat.widget.SearchView android:id="@+id/search_view" android:layout_width="match_parent" android:layout_height="wrap_content" app:iconifiedByDefault="false" app:queryHint="Search here" /> ``` 2. 在Activity或Fragment中获取SearchView的实例: ```kotlin val searchView = findViewById<SearchView>(R.id.search_view) ``` 3. 设置SearchView的监听器,以便在查询文本更改时触发搜索: ```kotlin searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String): Boolean { // 处理提交的搜索查询 return true } override fun onQueryTextChange(newText: String): Boolean { // 处理搜索查询文本更改 return true } }) ``` 4. 在onCreateOptionsMenu方法中设置SearchView为MenuItem: ```kotlin override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.search_menu, menu) val searchItem = menu.findItem(R.id.action_search) val searchView = searchItem.actionView as SearchView // 设置SearchView的监听器 return true } ``` 5. 在菜单文件中添加搜索菜单项: ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_search" android:icon="@drawable/ic_search" android:title="@string/search" android:showAsAction="ifRoom|collapseActionView" android:actionViewClass="androidx.appcompat.widget.SearchView" /> </menu> ``` 这样就可以在Toolbar或ActionBar中添加搜索栏了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值