我已按照此Android指南操作,以便为活动添加搜索栏.设置如下所示:
RES /菜单/ activity_main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/search"
android:title="@string/menu_search"
android:icon="@android:drawable/ic_menu_search"
android:showAsAction="collapseActionView|ifRoom"
android:actionViewClass="android.widget.SearchView" />
<item
android:id="@+id/menu_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/menu_settings"
android:icon="@drawable/ic_menu_settings"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
RES/XML/searchable.xml:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint" />
Run Code Online (Sandbox Code Playgroud)
清单文件中的活动条目:
<activity
android:name="de.ivu.realtime.app.activity.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
<meta-data
android:name="android.app.default_searchable"
android:value="de.ivu.realtime.app.activity.MainActivity" />
</activity>
Run Code Online (Sandbox Code Playgroud)
和MainActivity中的代码:
@SuppressLint("NewApi")
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
this.getMenuInflater().inflate(R.menu.activity_main, menu);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = …Run Code Online (Sandbox Code Playgroud) android searchable android-menu android-actionbar searchview
我正在使用support.v7.appcompat库开发一个带ActionBar的应用程序.操作栏有效,显示了SearchView,提示显示.唯一的问题是SearchView的背景不是正确的scalling.通常的Insead,看起来很大并且带有9条补丁的黑色线条.
ant debug用于编译.android.library.reference.1 = ../../../../../SDK /演员/机器人/支撑/ V7 /程序兼容性/

import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.support.v4.view.MenuItemCompat;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
public class DiccionariCatala extends ActionBarActivity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_actions, menu); …Run Code Online (Sandbox Code Playgroud) android searchview android-support-library android-actionbar-compat
我已经开发了一个在操作栏中有搜索视图的应用程序,当我完全搜索其过滤器时我遇到问题但是当我按下按钮时它仍然显示过滤器数据所以我的问题是什么是Action Bar Search的后退按钮事件视图.?

我的搜索视图代码是
SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(Menus.SEARCH));
searchView.setQueryHint(this.getString(R.string.search));
editSearch = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
editSearch.setHintTextColor(getResources().getColor(R.color.white));
searchView.setOnQueryTextListener(OnQuerySearchView);
private OnQueryTextListener OnQuerySearchView = new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String newText) {
if (TextUtils.isEmpty(newText)) {
listAllContact.clearTextFilter();
} else {
listAllContact.setFilterText(newText.toString());
}
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
String text = editSearch.getText().toString()
.toLowerCase(Locale.getDefault());
adapter.filter(text);
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
适配器中的过滤方法
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
propertyList.clear();
if (charText.length() == 0) {
propertyList.addAll(arrayList);
notifyDataSetChanged();
} else {
for (ContactProperty p …Run Code Online (Sandbox Code Playgroud) 我有以下问题.我已将Actionbar设置为使用工具栏,而不是使用API 21和appcompat-v7:21.在textColorPrimary风格标签被配置为使用的颜色@android:color/white,所以在新的Android工具栏所有的冠军将有一个白色的文本颜色(越远越好).
现在我添加了一个SearchView,并为它设置自定义背景,如下所示:
<style name="AppTheme.Base" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/action_bar_background</item>
<item name="colorPrimaryDark">@color/status_background</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:textColorPrimary">@android:color/white</item>
<item name="searchViewStyle">@style/SearchViewStyle</item>
</style>
<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
<item name="queryBackground">@drawable/search_background</item>
<item name="searchIcon">@drawable/icon_search</item>
</style>
Run Code Online (Sandbox Code Playgroud)
drawable @drawable/search_background是一个纯白色矩形.那猜猜怎么着?由于工具栏中的标题文本颜色为白色,因此SearchView中的文本颜色现在也是白色,而SearchView背景是白色矩形,用户无法看到他正在键入的内容.
我的问题是:如何为Android工具栏标题和SearchView文本提供不同的文本颜色?
我的应用程序能够使用ActionBar上的SearchView搜索项目(其他应用程序).
该应用程序使用Google的支持库,它适用于API 9的所有Android版本.
在Lollipop上,当我点击搜索操作项以便开始搜索时,我注意到左上角的向上/向后按钮变为白色,这对于这种情况很糟糕,因为操作栏背景也很白:

奇怪的是,它并不总是发生,我不认为它发生在不是Lollipop的Android版本上(在多个仿真器和设备上测试).
另一个奇怪的事情是导航抽屉图标似乎没问题,以及searchView内的X图标.
这是我的工具栏的XML:
<android.support.v7.widget.Toolbar
android:id="@+id/activity_app_list__toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize" />
Run Code Online (Sandbox Code Playgroud)
"colorPrimary"设置为:#ffEFEFEF.
此外,主题的活动的父级是"Theme.AppCompat.Light.NoActionBar",因为我已将工具栏设置为actionBar.
我该如何解决这个问题?
这个问题的原因是什么?为什么它在其他Android版本上运行良好?
我正在使用工具栏创建一个searchview onCreateOptionsMenu,但无法获得X最初为白色的清除按钮.开始输入字母时变为白色.清理后它也会保持白色.
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.responsible_menu, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); //TODO: May not be needed?
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextSubmit(String query)
{
mAdapter.updateUIWithFilter(query);
return false;
}
@Override
public boolean onQueryTextChange(String newText)
{
mAdapter.updateUIWithFilter(newText);
return false;
}
});
// Does not work! Still not white.
ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchClose.setColorFilter(Color.argb(255, 255, 255, 255));
searchClose.setAlpha(255);
return true;
}
Run Code Online (Sandbox Code Playgroud)
responsible_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个简单的应用程序,使用Android Studio,最低API级别为8,现在我正在使用android.support.v7.widget.SearchView 我LinearLayout的content_main.xml布局,而不是ACTIONBAR,现在问题是,我无法将searchView设置为Expanded默认情况下,我已经寻找解决方案,我只有这个:
android:iconifiedByDefault="false"
这是我的searchView的完整代码
<android.support.v7.widget.SearchView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/searchView"
android:background="#00000000"
android:iconifiedByDefault="false"
android:layout_weight="1" />
Run Code Online (Sandbox Code Playgroud)
但没有运气,它不起作用.谁有人可以帮助我?任何帮助,将不胜感激.非常感谢!
我想风格SearchView在toolbar看/作用相似SearchView的Google Play Store app.它似乎将搜索视图包装在一个cardview中,但它似乎也整合了按钮/抽屉切换行为.
这是searchView的主要活动,它集成了抽屉式切换器
当您单击它时,抽屉切换更改为箭头(单击时将从搜索视图中删除焦点)
当您单击商店中的应用程序时,您将转到应用程序详细信息页面,并且您将搜索视图的图标化版本看作具有向上按钮的折叠操作项:
最后,如果您点击搜索图标,它会扩展为一个动作项目(带有一种涟漪动画),并在屏幕上一直显示并包含向上按钮:
当我自己尝试这样做时,我遇到了很多问题.我试图将searchview包装在cardview中并将其放在工具栏中.它的工作原理但左边总是有填充,我无法删除(我试过contentInsetStart,不起作用):
<android.support.v7.widget.Toolbar
android:id="@+id/activityCatalogToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
android:theme="@style/AppTheme.AppBarOverlay"
app:contentInsetStart="0dp"
app:contentInsetLeft="0dp">
<android.support.v7.widget.CardView
android:id="@+id/activityCatalogSearchContainer"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:layout_marginRight="8dp"
android:layout_marginLeft="8dp"
app:cardCornerRadius="4dp"
app:cardElevation="8dp">
<android.support.v7.widget.SearchView
android:id="@+id/activityCatalogSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:queryHint=""
android:iconifiedByDefault="false"/>
</android.support.v7.widget.CardView>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
我还试图删除工具栏,只用FrameLayout替换它.这允许我控制填充但显然我丢失了工具栏功能(向上按钮等)并且还引入了主题问题(图标和文本消失).
有谁知道他们是怎么做的?我不想仅仅为框架中已存在的样式小部件添加另一个库.谢谢!
我试图实现android.support.v7.widget.SearchView与collapseIcon上Toolbar.一切工作正常即SearchView工作正常,但我无法删除/减少填充之间SearchView和collapseIcon,如可见随附的屏幕截图.
有关如何做到这一点的任何想法?

我试过了 :
app:contentInsetStartWithNavigation="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
android:contentInsetStart="0dp"
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
在提供UI的Android SearchView小部件中.它将搜索查询并向搜索提供程序提交请求.
BinarySearch等集合提供了不同类型的搜索查询...
Android Widget SearchView执行什么样的搜索查询.
(BinarySearch或LinerSearch或其他任何东西......)
android ×10
searchview ×10
android-menu ×1
google-play ×1
searchable ×1
themes ×1
up-button ×1