我已经按照这个问题的优秀答案来使SearchView我的ActionBar中的小部件适合自定义主题.它适用于纵向模式,但在横向上,操作系统会缩小ActionBar的高度以最大化内容屏幕区域.SearchView不像其他项目那样将没有边距的小部件装入ActionBar,而是在顶部切掉它:

我已经挖掘了Android源的res文件夹,但是找不到任何专门的布局或资源,这些布局或资源会明显地解决这个问题,甚至是Android本身如何管理默认的Holo SearchViewWidget到减少的ActionBar中.
任何见解都表示赞赏.谢谢.
android android-theme android-actionbar searchview background-drawable
我有一个包含 SearchView 和 ListView 的列表活动。我希望 SearchView 类似于谷歌地图 android 应用程序中存在的内容。

目前我在 activity_main.xml 中的 SearchView 代码是
<SearchView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:queryHint="Search restaurants"
android:iconifiedByDefault="false"
android:id="@+id/searchView" />
Run Code Online (Sandbox Code Playgroud)
有人可以指导我如何获得如上所述的自定义 SearchView。
我有一个可以Activity在ActionBar's android.support.v7.widget.SearchView(在软键盘上输入“Go”)中提交输入时查询远程数据库的工作搜索。这工作正常,但我最终想在每次SearchView通过添加或删除字符更改 的文本时查询数据库。我的初始化代码SearchView如下。
SearchFragment.java(Activity上面提到的可搜索的子片段)
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_search, menu);
// Get the searchable.xml data about the search configuration
final SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
SearchableInfo searchInfo = searchManager.getSearchableInfo(getActivity().getComponentName());
// Associate searchable configuration with the SearchView
mSearchView = (SearchView) menu.findItem(R.id.menu_item_search).getActionView();
mSearchView.setSearchableInfo(searchInfo);
mSearchView.requestFocus();
mSearchView.onActionViewExpanded();
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
mSearchListAdapter.clear();
return false;
}
@Override
public boolean onQueryTextChange(String query) …Run Code Online (Sandbox Code Playgroud) 我有一个功能,我需要一个菜单项在searchView展开时出现并在searchView关闭时消失。展开时,我已将该项目的setVisible 设置为 false,它使菜单项在返回到searchView 的折叠状态时消失,但它留下了一个空白区域。
截图:
有没有什么选项可以让searchView图标回到原来的位置?
SearchManager searchManager =(SearchManager)getSystemService(Context.SEARCH_SERVICE);
final MenuItem menuitem=menu.findItem(R.id.action_search);
final MenuItem locationitem=menu.findItem(R.id.action_location).setVisible(false);
SearchView searchView = (SearchView) menuitem.getActionView();
if(null!=searchManager ) {
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
}
searchView.setIconifiedByDefault(true); //if using on actionbar
searchView.setClickable(true);
searchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {
@Override
public boolean onSuggestionClick(int position) {
// Your code here
return true;
}
@Override
public boolean onSuggestionSelect(int position) {
// Your code here
return true;
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String …Run Code Online (Sandbox Code Playgroud) 感谢其他关于SearchView定制的SO 相关帖子,我能够定制我的SearchView:

现在我正在尝试添加语音搜索,并且能够更改语音按钮背景资源:
int searchVoiceIconId = searchPlate.getContext().getResources().getIdentifier("android:id/search_voice_btn", null, null);
ImageView searchVoiceIcon = (ImageView) searchView.findViewById(searchVoiceIconId);
searchVoiceIcon.setImageResource(R.drawable.ic_action_mic);
searchVoiceIcon.setBackgroundColor(Color.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法摆脱语音搜索按钮下的线条。

有什么建议????
谢谢
我试图在我的布局中使用SearchView(不在ToolBar或ActionBar中).
<FrameLayout android:layout_width="0dp" android:layout_weight="50" android:layout_height="wrap_content" >
<android.support.v7.widget.SearchView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|left" style="@style/MySearchViewStyle" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
我正在使用AppCompat,但它在前棒棒糖上看起来有所不同.EditText缺少pre-lollipop设备的底部边框.
棒棒糖搜索正确显示边框:

前棒棒糖搜索显示无边框:

我的主题是基本的:
<style name="Theme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- TOOLBAR -->
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<!-- Search -->
<item name="searchViewStyle">@style/MySearchViewStyle</item>
<item name="android:searchViewStyle">@style/MySearchViewStyle</item>
<!-- COLOURS -->
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
<style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView">
<item name="android:editTextStyle">@style/EditText</item>
<item name="editTextStyle">@style/EditText</item>
</style>
<style name="EditText">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:inputType">text</item>
<item name="android:cursorVisible">true</item>
<item name="android:maxLength">1000</item>
<item name="android:selectAllOnFocus">true</item>
<item name="android:paddingTop">4dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
任何有助于我的风格一致的帮助将非常感谢.
我有以下代码:
if(mSearchView != null){
mSearchView.setIconifiedByDefault(false);
mSearchView.setIconified(false);
mSearchView.setOnQueryTextListener(this);
int searchPlateId = mSearchView.getContext().getResources()
.getIdentifier("android:id/search_plate", null, null);
View searchPlateView = mSearchView.findViewById(searchPlateId);
if (searchPlateView != null) {
searchPlateView.setBackgroundColor(getResources().getColor(R.color.white));
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我在serachview上设置setIconified(false)时,键盘会弹出,我不希望这种情况发生.有可能以某种方式阻止这种情况吗?PS:我在清单中有这个:
android:windowSoftInputMode="adjustNothing|stateHidden"
Run Code Online (Sandbox Code Playgroud)
也可以在onCreate中以编程方式进行,但没有运气
keyboard android soft-keyboard android-softkeyboard searchview
我正在尝试解决一个小问题.当我打开我的应用程序时,键盘会显示输入搜索视图的查询.但是我只想在单击搜索视图时显示键盘.我该如何解决?
谢谢!
自从我将Android设计库从23.4.0更新到24.1.1后,我遇到了一个问题
我的SearchView定义如下:
<item android:id="@+id/action_search"
android:icon="@drawable/ic_search"
android:title="@string/title_action_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom"
/>
Run Code Online (Sandbox Code Playgroud)
但我的SearchView输入变得不可见(我可以在其中写入,但文本或提示不会出现).
我在下面的图片中描述了3个不同的步骤:
如果我删除"collapseActionView"参数,它工作正常,但searchInput只是屏幕的一半(而不是全宽).
你知道这个库中是否有变化可以解释它吗?
谢谢提前!(抱歉图像质量......)
我有searchView
<SearchView
android:id="@+id/searchBar"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:visibility="visible"/>
Run Code Online (Sandbox Code Playgroud)
我想在按下提交按钮时添加自定义操作.
但我能得到的只是
searchBar.setOnSearchClickListener {
//do some stuff
}
Run Code Online (Sandbox Code Playgroud)
我发现的所有信息都很旧,而不是来自kotlin lang.
当键盘上的搜索图标被录音时,如何触发操作?