当我从ActionBar激活搜索时,我看到这个问题集中在SearchView EditText上.但是,当它获得焦点时键盘不会出现.不应该,因为它只是一个普通的EditText?(这是一个普通的EditText吗?)这种行为在Android SDK 11级上可见.(三星Galax Tab 7.7与Android股票.)
我现在有一个解决方法,它挂钩onOptionsItemSelected(MenuItem item)我的Activity 的方法,显示键盘.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
boolean menuSelectionHandeled = super.onOptionsItemSelected(item);
// menu_search is the id of the menu item in the ActionBar
if (item.getItemId() == R.id.menu_search) {
mInputManager.showSoftInput(null, InputMethodManager.SHOW_IMPLICIT);
}
return menuSelectionHandeled;
}
Run Code Online (Sandbox Code Playgroud)
在哪里mInputManager的实例InputMethodManager.
ActionBar是用ActionBarSherlock构建的,因为目标设备是Android 3.x,这可能是症状的原因吗?根据ActionBarSherlock的常见问题解答:
Android 3.x(也称为Honeycomb)上的操作栏未实现Android 4.x(Ice Cream Sandwich)中的所有功能.为了在所有平台上提供完整的操作栏API以及统一所有Android版本的样式,使用自定义实现.
使用操作栏搜索界面时,窗口小部件将以纵向模式展开以占据屏幕的整个宽度,但在横向模式下会停止缩短.
有没有办法在SearchView上设置扩展布局参数,以便在用户键入搜索时完全填充操作栏?
见图:http: //i.imgur.com/3z8ZbJA.png
注意:我目前没有使用ActionBar Sherlock
编辑:这是我为了扩展全宽而做的.
searchView.setOnSearchClickListener(new OnClickListener() {
private boolean extended = false;
@Override
public void onClick(View v) {
if (!extended) {
extended = true;
LayoutParams lp = v.getLayoutParams();
lp.width = LayoutParams.MATCH_PARENT;
}
}
});
Run Code Online (Sandbox Code Playgroud) 我试图在ICS +中的SearchView小部件上更改闪烁光标的颜色.我尝试过以下方法:
<item name="android:textCursorDrawable">@null</item>到我的主题android:textCursorDrawable="@null"直接在SearchView上设置我在这里阅读答案(SearchView中的自定义光标颜色),但是searchAutoCompleteTextView没有非ABS样式,所以无法尝试这个.我还寻找了一个Java方法来设置文本光标drawable,但找不到 - 我正在修改Java中SearchView的其他方面,并且如果有可用的方法,可以使用光标这样做.
我已经非常广泛地定制了SearchView,但最后一个改变是让它看起来不正确 - 光标在白色背景上是白色的,所以它不容易看到.我可以尝试其他任何想法吗?
我已经实现了机器人SearchView在ActionBar.当SearchView获得焦点,关闭按钮[X]在合适的显示出来.我看了一下其他Android原生应用,比如联系人和Gmail.SearchView增益聚焦时不显示关闭按钮.
如何设置我的SearchView表现?
我正在尝试使用新的AppCompat v21设置SearchView小部件的样式,但我遇到了一些问题.无论我在"suggestionRowLayout"属性上设置什么布局,它都什么都不做.SearchView的建议下拉列表保持不变.
我遇到的其他问题是当"强调颜色"与"原色"颜色相同时,在搜索视图中无法区分插入符号在哪里.您知道如何更改SearchView中的重音颜色仅适用于那里吗?我发现Play Music有同样的问题.
我正在关注Android开发者博客的指南:
http://android-developers.blogspot.com.es/2014/10/appcompat-v21-material-design-for-pre.html
android searchview android-support-library material-design android-5.0-lollipop
您好我正在尝试实施SearchView,就像我们在Gmail中一样.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (!mNavigationDrawerFragment.isDrawerOpen()) {
getMenuInflater().inflate(R.menu.main, menu);
searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
restoreActionBar();
return true;
}
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
searchView对象为null
表现:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dgp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="android.app.default_searchable"
android:value=".GameSearchActivity" />
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".GameInfoActivity"
android:label="@string/title_activity_game_info" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" /> …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的工具栏中添加SearchView,我添加了图标,但是当我按下它时,它不会扩展.
这是代码:
main_menu.xml
<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.app.try.MainActivity">
<item
android:id="@+id/search"
android:title="@string/search"
android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
app:showAsAction="always"
android:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.menu_main,menu);
MenuItem searchItem = menu.findItem(R.id.search);
SearchManager searchManager= (SearchManager)getSystemService(Context.SEARCH_SERVICE);
SearchView searchView=null;
if (searchItem!=null) {
Log.d("createOptionMenu","search item not null");
searchView = (SearchView) searchItem.getActionView();
}
if (searchView!=null) {
Log.d("createOptionMenu","search view not null");
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
}else{
Log.e("createOptionMenu","search view null");
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
(这总是显示日志消息"search view null")
AndroidManifest.xml中
...
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<activity
android:name=".SearchResultActivity" …Run Code Online (Sandbox Code Playgroud) 我在android应用程序中使用searchview(searchview不是操作栏的一部分).我想删除搜索图标/ searchview左侧的空格.我搜索了很多,并收到了适用于搜索视图的答案,这些视图是操作栏的一部分.
我尝试使用android:layout_gravity,android:gravity,但它们似乎没有用.我想过使用android:contentInsetStart,android:contentInsetLeft,但这些选项不适用于searchview(这不是动作栏的一部分).
[ http://postimg.org/image/xz6pf8yp5/][1]
(由于我的声誉不到10,因此无法在此处直接发布图片)
serchview位于LinearLayout(垂直方向).这是我正在使用的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".MainActivity"
tools:showIn="@layout/activity_main">
<SearchView
android:id="@+id/searchView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dp"
android:layout_gravity="left"
android:gravity="left"
/>
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我在支持AppCompat v7 lib 24.0.0上的Searchview实际上存在问题.
SearchView没有显示没有文字和输入文字(看截图)
搜索查询工作完美.
那是我的菜单
<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:title="@string/search"
android:id="@+id/action_search"
android:icon="@drawable/ic_search_24dp"
app:showAsAction="ifRoom|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
在这里我的onCreateOptionsMenu;
menu.clear();
inflater.inflate(R.menu.menu_search, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//Perform the final search
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
//Text has changed, apply filtering?
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
我希望有一个人可以帮助我.:)
塞巴斯蒂安
我实现了一个RecyclerView与SearchView和Filterable; 所有课程来自v7.现在这种行为很烦人.每当键盘启动或关闭时,内容RecyclerView都会变为空白.计数仍然正确,但视图为空.我猜,它与Layout尺寸变化有关.这种行为是正常还是有问题?怎么处理呢?我可以显示代码,但不太清楚哪个部分是相关的,所以告诉我在这里可以添加什么?