我试图模仿 gmail 应用程序处理搜索的方式,如下所示:
如上所示,searchView 中的搜索查询后面有一个(蓝色)闪烁的光标。
我各自的代码如下所示:
SearchReslutActivity.class
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setQuery(getIntent().getStringExtra(SearchManager.QUERY), false);
searchView.setIconified(false);
searchView.clearFocus();
return true;
}
menu/search_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/search"
android:title="@string/search_title"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always" /> </menu>
xml/searchable.xml
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="@string/hint"
android:includeInGlobalSearch="true"
android:inputType="textCapWords"
android:label="@string/app_name"
android:searchSuggestAuthority="com.webaddress.myproject.data.Provider"
android:searchSuggestIntentAction="android.intent.action.VIEW"
android:searchSuggestIntentData="content://com.webaddress.myproject.data.Provider/table"
android:searchSuggestSelection=" ?"
android:searchSuggestThreshold="1" />
上面的代码实现了与 gmail 应用程序中显示的相同的外观除了有一个闪烁的光标。如何添加这样一个闪烁的光标而不请求将焦点放在 searchView
上(这又会使软键盘再次弹出)?
谢谢!
最佳答案
在onCreate()
中添加此代码
searchView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!searchView.hasFocus()) {
//this if condition is true when searchview lost focus...
int searchSrcText = searchView.getContext().getResources()
.getIdentifier("android:id/search_src_text", null, null);
EditText editText = (EditText) searchView.findViewById(searchSrcText);
editText.setCursorVisible(true);
searchView.setActivated(true);
searchView.setPressed(true);
}
}
});
关于android - SearchView 中的文本后光标闪烁而不显示软键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42970994/