我使用搜索视图放在操作栏中
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_search"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/action_search"
android:showAsAction="ifRoom|collapseActionView"
android:title="search"
/>
</menu>
Run Code Online (Sandbox Code Playgroud)
当我点击它时,它从动作栏的右侧移动到左侧,我怎么能让它停留在动作栏的右侧.
"错误"很奇怪其他时候我已经完成了它并且从未解决过这个问题......
如果我在菜单上放置"appname:actionViewClass ="android.support.v7.widget.SearchView",我的searchview不会调用onOptionsItemSelected.
表现
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<activity
android:name=".DashBoardActivity"
android:label="">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
dash_board.xml(菜单)(如果我撤回actionViewClass他调用(onOptionsItemSelected),但如果我把他不打电话)
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:appname="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.servic.DashBoardActivity" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
appname:showAsAction="always"
appname:actionViewClass="android.support.v7.widget.SearchView"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
appname:showAsAction="always"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
DashBoardActivity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.dash_board, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) { …Run Code Online (Sandbox Code Playgroud) 我有一个背景可绘制的搜索视图,但无论我尝试什么,我似乎都无法显示文本.SearchView中没有文字显示.
我已经尝试过android:text,android:queryHint甚至以编程方式设置它,mSearchView.setQueryHintText("search for something");但这些都没有.searchView不在actionBar中.
这是searchview的xml
<android.support.v7.widget.SearchView
android:id="@+id/m_search_view"
android:layout_width="match_parent"
android:layout_height="@dimen/searchbar_height"
android:layout_alignWithParentIfMissing="true"
android:layout_toLeftOf="@+id/other_button"
android:background="@drawable/rounded_corner_box"
android:focusableInTouchMode="true"
android:gravity="center_vertical|left"
android:paddingLeft="@dimen/left_padding"
android:queryHint="search for something"
android:textAppearance="@style/m_text_appearance"
android:textColor="@color/m_text_color" />
Run Code Online (Sandbox Code Playgroud)
当我没有设置背景时,我根本看不到searchView(searchView是半透明的).
任何帮助,将不胜感激.
为什么这条线android:iconifiedByDefault="false”总是被忽略,要求我总是要找到一种方法来自动完成它?如果总是被忽略,为什么要将它作为选项包括在内?我错过了什么吗?
我正在尝试访问我的应用程序中EditText的SearchView (v7)字段,但我总是以空指针异常告终。到目前为止,我已经尝试了解决方案,并试图通过访问EditView中android:id/search_plate,R.id.search_plate,R.id.search_src_text和android:id/search_src_text,但一切都是徒劳。
代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.frag_menu_items, menu);
MenuItem menuItem = menu.findItem(R.id.action_search);
searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
searchPlate = (EditText) searchView.findViewById(searchPlateId);
searchPlate.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
searchPlate.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
ToastClass.getInstance().showCustomMsg(getActivity(),searchPlate.getText().toString());
}
return false;
}
});
//searchView.setOnQueryTextListener(this);
MenuItemCompat.setOnActionExpandListener(menuItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// Do …Run Code Online (Sandbox Code Playgroud) 我希望我的搜索视图小部件填满整个工具栏,所以在 menu.xml 中我这样做了:
...
app:showAsAction="always"
Run Code Online (Sandbox Code Playgroud)
当搜索视图展开时,这似乎隐藏了工具栏中的所有其他项目,但不是抽屉切换按钮:
无论如何我可以让搜索视图小部件填满整个工具栏并隐藏切换按钮吗?谢谢
在 中Android 11,当targetSdk设置为30并启用语音搜索时,麦克风图标不会显示在 上SearchView。但是,如果targetSdk设置为 29 ,它可以正常工作。它也适用于Android 10带有targetSdk 30.
有什么额外的事情需要做30吗?
菜单文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:title="Search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)
清单文件
<activity android:name=".MainActivity">
<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" />
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
可搜索文件
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="Search"
android:imeOptions="actionSearch"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"/>
Run Code Online (Sandbox Code Playgroud)
主要活动
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.search, menu)
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
val …Run Code Online (Sandbox Code Playgroud) 我正在尝试ActionBarSherlock SearchView.不幸的是
public boolean onKey(View arg0, int arg1, KeyEvent event)
Run Code Online (Sandbox Code Playgroud)
没有解雇.你知道原因吗?我在帖子中看到 SearchView imeOptions和onQueryTextSubmit支持 用户以另一种方式解决了问题.也许我应该这样做?
谢谢
这是我的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Used to put dark icons on light action bar
boolean isLight = SampleList.THEME == R.style.Theme_Sherlock_Light;
//Create the search view
final SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setQueryHint("Search for countries…");
System.out.println("searchView.getQuery()"+searchView.getQuery());
searchView.setOnKeyListener(new OnKeyListener()
{
/**
* This listens for the user to press the enter button on
* the keyboard and then hides the virtual keyboard
*/
@Override
public boolean …Run Code Online (Sandbox Code Playgroud) 我是Xamarin Android Development的新手,我使用MvvmCross来绑定数据.我在动作栏上有SerachView.我想从ViewModel中的列表中搜索数据.我可以实现它吗?我在互联网上搜索过这个问题,但都使用了适配器,我想在不使用ViewModel的适配器的情况下搜索列表项.我不知道怎么做.所以有人能建议我一个简单的方法吗?
任何建议或意见将不胜感激.
我正在实现没有Actionbar和工具栏的searchview.一切都是固定的,只需后退按钮.下面是我的xml.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
<SearchView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"">
</SearchView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我得到了这样的东西.
下面是我需要的图像.
任何帮助都会很棒.