gpt4 book ai didi

android - 使用工具栏中的 SearchView 自动打开/关闭键盘

转载 作者:行者123 更新时间:2023-11-30 02:20:29 25 4
gpt4 key购买 nike

我在使用工具栏中的搜索 View 作为操作栏打开和关闭键盘时遇到了很大的问题。当我点击搜索按钮时,它会作为一个 Action 扩展并出现编辑文本,但它没有焦点并且它们的键盘没有打开。我必须手动单击编辑文本才能打开键盘。关闭键盘也一样。当我点击关闭搜索按钮时,他们的键盘不会关闭。

我确定这在不使用工具栏的情况下已经有效....但我无法使用工具栏修复它。有人有想法吗?

这是我的菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.toolbar.MainActivity" >


<item
android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
app:showAsAction="ifRoom|collapseActionView"


app:actionViewClass="android.widget.SearchView"
android:title="@string/action_search"/>

<item
android:id="@+id/action_contact"
android:icon="@drawable/ic_action_settings"
app:showAsAction="ifRoom"

android:title="@string/action_settings"/>

这是我的 onCreateOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);

// Get the SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();

searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

// Do not iconify the widget;expand it by default
searchView.setIconifiedByDefault(false);

setSearchIcons();
return super.onCreateOptionsMenu(menu);
}

感谢您的任何建议。干杯!

编辑1:

很明显,经过 10 小时的努力,我问了这个问题,30 分钟后我找到了解决方案。

是 app:showAsAction="ifRoom|collapseActionView"折叠 Action View 。删除它就成功了。但现在我有另一个问题。当搜索 View 展开时,设置按钮看起来很糟糕。设置按钮一半可见/一半被切掉。

在 API 21 Nexus 4 Android 5 上,搜索 View 删除了设置按钮。在装有 Android 4.4.2 的 THL 5000 上,搜索 View 似乎工作正常,但图标不像 Nexus 上那样是白色的,而是灰色的。有什么想法吗?

最佳答案

如果你的searchView并不总是处于展开状态,那么你可以试试下面的代码:

mSearchView.setIconifiedByDefault(true);
mMenuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
// Add code here
return false;
}

@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// Add code here
return false;
}
});

点击键盘上的输入/完成后隐藏键盘:

@Override public boolean onQueryTextSubmit(String query) {
mSearchView.clearFocus();
return true;
}

关于android - 使用工具栏中的 SearchView 自动打开/关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28615503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com