我在搜索菜单的操作栏中使用了Sherlock搜索视图小部件.用于初始化搜索视图的代码段
MenuItem item = menu.findItem(R.id.menu_search);
item.expandActionView();
mSearchView = (SearchView) item.getActionView();
mSearchView.setIconifiedByDefault(false);
mSearchView.setQuery(query, false);
mSearchView.clearFocus();
Run Code Online (Sandbox Code Playgroud)
上面的代码显示了带有默认搜索查询的扩展搜索视图.问题是,当我按下后退按钮时,搜索视图会再次折叠,然后返回到android中的上一个活动.我不希望搜索视图在后退按键时折叠.如何防止搜索视图在后退按键上折叠?
我已按照本教程在操作栏中配置了searchview小部件.几乎一切都运行正常,除了软键盘没有显示正确的按钮.键盘没有显示"搜索"按钮,而是显示"开始"按钮,它还带我去另一个活动,我确信它不对.

你知道如何让键盘显示"搜索"按钮吗?为什么我们必须将此代码放在可搜索的活动中:
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
Run Code Online (Sandbox Code Playgroud)
提前致谢.
如何显示使用整个屏幕宽度的SearchView 建议appcompat-v7:21?
我在代码和菜单资源中使用android.support.v7.widget.SearchView.新的工具栏小部件有一个searchViewStyle,但我找不到一个参数来显示建议全宽(match_parent).
示例http://d0od.wpengine.netdna-cdn.com/wp-content/uploads/2014/07/material-makeover-4.jpeg
我想在我的主题样式中设置SearchView的下拉建议的背景.我不想通过布局文件这样做,因为我希望操作系统自己处理选择背景.以编程方式设置后台删除列表选择器,我想避免这种情况.

这就是我现在所拥有的.我希望行的背景为白色.styles.xml为了实现这一目标,我有什么需要改变的?
PS:我自己删除了建议上的文字,所以看起来像是一个很大的黑暗区块.
如何检测searchView上的点击?
我尝试过使用setOnClickListener,setOnSearchClickListener,setOnFocusChangedListener,但无济于事.
问题似乎只是点击文本框.如果我单击文本框外的任何位置onClickListener触发器,但是如果单击文本框内部则不会.
我试图解决的问题是,如果用户点击任何地方,我需要关闭.但我不知道如何处理SearchView.
我已将SearchView功能添加到工具栏中,我希望在展开时将其设置为全宽,并将提示文本颜色更改为白色而不是黑色.最后,我已经能够以编程方式执行此操作:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
// Associate searchable configuration with the SearchView
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setMaxWidth(4000);
((EditText)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text)).setHintTextColor(getResources().getColor(R.color.md_text_white));
searchView.setIconifiedByDefault(false);
return true;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法通过xml或其他配置中的样式来实现这一点?我更喜欢独立的功能和样式.
我已尝试使用searchViewStyle并为SearchView创建自定义样式但尚未使用:
<style name="AppTheme" parent="Base.AppTheme">
<item name="searchViewStyle">@style/SearchViewTheme</item>
</style>
<style name="SearchViewTheme" parent="Widget.AppCompat.Light.SearchView">
<item name="android:maxWidth">10000dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
这是我的menu_main.xml
<?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity">
<item
android:id="@+id/action_search"
android:title="@string/action_search"
android:orderInCategory="100"
android:icon="@drawable/ic_action_search"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
Run Code Online (Sandbox Code Playgroud) 我正试图editText在屏幕中间进行搜索,
无论何时按下,都会将动画移动到searchView工具栏中.
正如你可以在chrome app(v46)的新标签中找到的那样.
没有找到任何Github的例子,所以任何想法如何实现?
android android-animation searchview google-chrome-app android-toolbar
我正在尝试实现自定义 SearchView 布局。我已经成功更改了 android.support.v7.appcompat.SearchView 的许多属性,例如背景颜色和文本颜色,但我还想自定义更多。所以我制作了自己的 search_view_layout.xml 文件,但我不知道如何实现它。这是 search_view_layout.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_gravity="top"
android:background="#FFFFFF"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:paddingRight="5dp"
android:paddingBottom="5dp"
android:padding="5dp">
<SearchView
android:id="@+id/leftMenuSearch"
android:background="#FFFFFF"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:queryHint="What are you looking for?"
android:layout_weight="1"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:maxWidth="1000dp"/>
<Button
android:id="@+id/cancel_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:background="@color/beanBlue"
android:text="Cancel"
android:textColor="#FFFFFF"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的 menu_main.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<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"
xmlns:appcompat="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_search"
android:title="Search"
android:icon="@drawable/search_icon"
app:showAsAction="always|collapseActionView"
app:actionLayout="@layout/search_view_layout"
app:actionViewClass="android.support.v7.widget.SearchView"/>
<item android:id="@+id/action_cart"
android:title="Cart"
android:icon="@drawable/cart_icon"
app:showAsAction="ifRoom"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
这是我的 toolbar.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" …Run Code Online (Sandbox Code Playgroud) 我正在构建 android 应用程序,其中我在工具栏下方嵌入了一个搜索视图。请参阅屏幕截图。但是当我点击搜索图标时,我的键盘会出现,但是当我点击搜索视图的关闭图标时,键盘并没有消失。关闭侦听器不起作用,无法使用动作展开或折叠侦听器,因为它不是菜单项。那么我应该如何消失键盘。请指导。
simpleSearchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
hideKeyboard(getActivity());
return false;
}
});
Run Code Online (Sandbox Code Playgroud) 我正在为搜索栏使用arimorty/floatingsearchview库,它工作正常,但现在我想要一个带有红色圆圈/徽章的通知图标,但无法找到制作方法。
在活动中:
<com.arlib.floatingsearchview.FloatingSearchView
android:id="@+id/floating_search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:floatingSearch_searchHint="Search..."
app:floatingSearch_suggestionsListAnimDuration="250"
app:floatingSearch_showSearchKey="false"
app:floatingSearch_leftActionMode="showHamburger"
app:floatingSearch_menu="@menu/searchbar_sidemenu"
app:floatingSearch_close_search_on_keyboard_dismiss="true"
android:paddingEnd="10dp"
android:paddingStart="10dp"
android:paddingTop="10dp"/>
Run Code Online (Sandbox Code Playgroud)
菜单代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_notification"
android:title="Notification"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_notifications_none_black_24dp"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
我尝试了其他答案,但没有一个对我有用。
如果需要,我将解释/澄清或共享 Java 代码。
[更新]
我试图实现这个答案和其他答案。
在 GitHub repo 中搜索并找到了这个但不明白。