将SearchView添加到菜单时(请参见下面的示例),它的图标不会更改,并且它以非标准方式运行.例如,长按搜索菜单按钮应该弹出文本搜索,但它不会.
如何将其行为更改为更标准?(图标和长按现在.我确定还有其他问题)
用于添加视图的代码示例:
MenuItem item = menu.add("Search");
SearchView sv = new SearchView(getActivity());
item.setActionView(sv);
item.setIcon(drawable.menu_search);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在制作一个应用程序,并且我有一个带有搜索视图的活动。我的观点是我想更改文本字段的背景颜色(屏幕截图中的黑色矩形)。
我的可绘制:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".SearchActivity" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="160sp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@drawable/search_background"
android:orientation="vertical" >
<SearchView
android:id="@+id/searchView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20sp"
android:layout_marginRight="20sp"
android:layout_marginTop="60sp"
android:actionViewClass="android.widget.SearchView"
android:background="@drawable/searchview"
android:iconifiedByDefault="false"
android:paddingLeft="10sp"
android:paddingTop="5sp"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:showAsAction="collapseActionView"
android:focusable="false" >
</SearchView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
截图:http : //imageshack.com/a/img829/3203/pd85.png
有人可以帮我吗?谢谢
我想显示一个总是在我的扩展中的AutoCompleteTextViewActionBar.这是我的菜单xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/visibility_menu_search"
android:icon="@drawable/ic_action_search"
android:showAsAction="always"
android:actionLayout="@layout/visibility_search" />
</menu>
Run Code Online (Sandbox Code Playgroud)
这是我的 layout/visibility_search.xml
<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/visibility_search_auto_complete_text_view" />
Run Code Online (Sandbox Code Playgroud)
这是我的活动:
public class VisibilityActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layout.visibility_activity);
getActionBar().setDisplayShowTitleEnabled(false);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.visibility, menu);
return super.onCreateOptionsMenu(menu);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用,showAsAction="always"因为我希望AutoCompleteTextView始终可见(这将是唯一的东西ActionBar).
我AutoCompleteTextView总是在右边对齐ActionBar,只有100px的宽度.为什么是这样?
更新
感谢Atul O Holic的回答,我为我的案例找到了一个首选解决方案,它根本不需要任何特殊逻辑.我要离开我的答案是正确的,因为它适用于一般情况下,但对于我的具体情况,一个SearchView是更好,更容易.

我可以SearchView使用以下代码更改背景:
mSearchView = (SearchView) findViewById(R.id.search_search_view);
LinearLayout layout = (LinearLayout)mSearchView.findViewById(mSearchView.getContext().getResources().getIdentifier("android:id/search_bar", null, null));
layout.setBackground(getResources().getDrawable(R.drawable.curve_stroke_border_white_bg));
Run Code Online (Sandbox Code Playgroud)
但是如何search_plate在搜索视图中删除(在图片中显示为红色)。
任何人都可以有任何想法请帮助我..
提前致谢。
有谁知道如何隐藏AppCompat v21 searchview中的后退按钮?(绿线概述)

我搜索了很多但找不到任何有用的东西.
menu_main.xml:
<item android:id="@+id/search"
android:title="@string/search_title"
app:showAsAction="always|collapseActionView"
android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
android:orderInCategory="300"
app:actionViewClass="android.support.v7.widget.SearchView" />
<item android:id="@+id/action_home"
android:title="Home"
android:icon="@drawable/v_home"
app:showAsAction="always"
android:orderInCategory="180"/>
<item android:id="@+id/action_favorites"
android:title="Favorites"
android:icon="@drawable/v_favorites"
app:showAsAction="always" />
Run Code Online (Sandbox Code Playgroud)
主要活动:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
firstMenu = menu;
searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
MenuItem searchItem = menu.findItem(R.id.search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setSubmitButtonEnabled(true);
searchView.setActivated(true);
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) …Run Code Online (Sandbox Code Playgroud) 我想在工具栏中打开android searchview而不点击搜索图标.这是XML代码
<item
android:id="@+id/action_search"
android:title="@string/search_title"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always"/>
Run Code Online (Sandbox Code Playgroud)
和MainActivity中的Java代码.
@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);
MenuItem menuItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
searchView.setQueryHint("Type something...");
int searchPlateId = searchView.getContext()
.getResources()
.getIdentifier("android:id/search_plate", null, null);
View searchPlate = searchView.findViewById(searchPlateId);
if (searchPlate != null) {
searchPlate.setBackgroundColor(Color.DKGRAY);
int searchTextId = searchPlate.getContext()
.getResources()
.getIdentifier("android:id/search_src_text", null, null);
TextView searchText = (TextView) searchPlate.findViewById(searchTextId);
if (searchText != null) {
searchText.setTextColor(Color.WHITE);
searchText.setHintTextColor(Color.WHITE); …Run Code Online (Sandbox Code Playgroud) 我需要在我的 SearchView 是否折叠时进行拦截,以便更改我的 Activity 中的某些片段,即 AppCompatActivity。我使用MenuItemCompat.setOnActionExpandListener方法创建了一个侦听器,但似乎从未调用过它。同样奇怪的是,在我的方法onOptionsItemSelected 中,经过一些调试后,我检查了一下,仍然在这里我什么也无法接受。我尝试了这里建立的各种方法来解决这个问题,但没有办法解决它。这是我的代码:
menu_search_cat.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=".CategoriesActivity">
<item android:id="@+id/search"
android:title="@string/search_title"
android:orderInCategory="1"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always"
app:actionViewClass="android.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)
分类活动
import android.widget.SearchView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_categories);
...
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_search_cat, menu);
// Associate searchable configuration with the SearchView
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
final SearchView searchView =
(SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
searchView.setOnQueryTextListener(this);
MenuItem searchItem = …Run Code Online (Sandbox Code Playgroud) 我有一个带有 RecyclerView 的 SearchView,用于搜索联系人列表。但是搜索结果结果似乎是错误的。一些过滤正在发生,但不是正确的过滤。例如,如果我使用字符“a”进行搜索,它将过滤掉一些随机的东西,而不是以 a 开头的联系人。代码片段如下。
活动课
public class MembersActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {
@BindView(R.id.meetup_members_recycler_view)
RecyclerView mRecyclerView;
CustomContactAdapter contactAdapter;
List<Contact> contactList = new ArrayList();
private SearchView mSearchView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_meetup_members);
ButterKnife.bind(this);
mSearchView = (SearchView) findViewById(R.id.action_search);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
getAllContacts();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(this);
return true;
}
private void getAllContacts() {
Contact contact;
ContentResolver contentResolver = getContentResolver();
Cursor cursor …Run Code Online (Sandbox Code Playgroud) 我的完整项目如下:有一个listView连接到数据库和一个带有建议的搜索选项.我想将此搜索栏移至操作栏并将其格式化为Google Play商店搜索栏.请帮帮我,我的完整代码是:
MainActivity.java
package com.GurbaniAndSikh.MahaanKosh;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
/*
* Created by GurbaniAndSikh
*/
public class DictionaryMainActivity extends AppCompatActivity {
private static RecyclerView.Adapter adapter;
private RecyclerView.LayoutManager layoutManager;
private static RecyclerView recyclerView;
public static ArrayList<DictObjectModel> data;
DatabaseHelper db ;
ArrayList<String> wordcombimelist;
ArrayList<String> meancombimelist;
LinkedHashMap<String,String> …Run Code Online (Sandbox Code Playgroud) 我有白色的操作栏,当我点击搜索视图按钮时,我能够获得搜索视图但无法获得搜索视图下方的行并且无法看到后退按钮。我想更改搜索视图后退按钮的颜色/完整图标,并且我想获取搜索视图下方的行。我用谷歌搜索并尝试了很多不同的方法,但没有运气。我也尝试过更改工具栏样式,但没有成功。我也在活动和片段中使用搜索视图..
我曾尝试更改工具栏样式,如下所示
<style name="ToolbarStyle" parent="@style/ThemeOverlay.AppCompat.ActionBar">
<!-- Customize color of navigation drawer icon and back arrow -->
<item name="colorControlNormal">@color/colorBlack</item>
<item name="android:collapseIcon" tools:ignore="NewApi">@mipmap/filter_red</item>
</style>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!!!!
提前致谢