我正在我的应用程序中工作,工具栏中有一个搜索视图,但提示在光标后面有一个小填充。
如何去除填充物?
这是我的搜索视图:
我想要这样:
这是我的 onCreateOptionsMenu:
SearchManager searchManager=(SearchManager)getSystemService(Context.SEARCH_SERVICE);
MenuItem item=menu.findItem(R.id.procura);
Drawable drawable = menu.findItem(R.id.procura).getIcon();
if (drawable != null) {
drawable.mutate();
drawable.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_ATOP);
}
searchView=(SearchView) MenuItemCompat.getActionView(item);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setQueryHint(getResources().getString(R.string.app_hint));
try {
Field mDrawable = SearchView.class.getDeclaredField("mSearchHintIcon");
mDrawable.setAccessible(true);
Drawable drw = (Drawable) mDrawable.get(searchView);
drw.setBounds(0, 0, 0, 0);
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我的风格:
<style name="SearchViewMy" parent="Widget.AppCompat.Light.SearchView">
<item name="submitBackground">@color/colorPrimary</item>
<item name="queryBackground">@color/colorPrimary</item>
<item name="android:colorFocusedHighlight">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我的菜单:
<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:id="@+id/procura"
android:title="@string/app_hint"
android:icon="@mipmap/ic_search_black_24dp"
app:showAsAction="ifRoom|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"/>
Run Code Online (Sandbox Code Playgroud)
我正在为 Android 5.0+ 创建应用程序,所以我正在使用 API 21+。
使用 android.support.v7.widget.SearchView 与 SearchView 有什么好处?
我可以使用 SearchView 还是必须使用 android.support.v7.widget.SearchView?
如何以这种方式设置 SearchView 的样式。我还需要在其他活动中重用这种风格。
我目前的风格:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimaryDark">@color/color_primary</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:textColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud) 如何将侦听器设置为 searchView 中的“明文”按钮(不关闭)。不,onQueryTextChange设置为空并不能解决我的问题。
你好
我正在使用SearchView,如教程创建搜索界面中所述.
我使用选项android:launchMode ="singleTop"在当前活动中执行搜索.
按下"查找"按钮键盘关闭但SearchView保持打开状态.
执行搜索后是否可以对SearchView进行图标化?
我在我的Android应用程序中使用searchview,我想添加一个用户按下以开始搜索的按钮.根据我在Internet上阅读的内容,我可以使用setSubmitButtonEnabled调用提交按钮而不是在布局文件中放置按钮.这是我的代码:
public void setSubmitButtonEnabled (boolean enabled) {
}
Run Code Online (Sandbox Code Playgroud)
我将setSubmitButtonEnabled放在菜单inflater中,如下所示:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mylist, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
setSubmitButtonEnabled(true);
return true;
}
Run Code Online (Sandbox Code Playgroud)
显然我做得不对,因为当我启动我的应用程序时,我在屏幕上看不到任何提交按钮.我的代码中缺少什么或出了什么问题?提交按钮应该出现在键盘上还是屏幕上?谢谢.
我有这个代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat
.getActionView(searchItem);
searchView.setQueryHint("Search");
searchView.setOnQueryTextListener(this);
return true;
}
Run Code Online (Sandbox Code Playgroud)
它有SearchView.要打开SearchView,应单击循环图标.如何让它在开始时自动打开?
我有searchview它工作正常,当我输入英文单词的小写字母.但是,当我使用大写单词过滤列表时,它不起作用,当我键入时,请帮助我解决我的问题.谢谢我的进步
这是我的searchView代码
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
// Inflate menu to add items to action bar if it is present.
inflater.inflate(R.menu.menu_main, menu);
// Associate searchable configuration with the SearchView
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView =
(android.support.v7.widget.SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
searchView.setOnQueryTextListener(new android.support.v7.widget.SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
Log.i("search", "search is working "+newText);
listDataAdapter.getFilter().filter(newText);
return false;
}
});
return true;
}
Run Code Online (Sandbox Code Playgroud)
这是适配器代码
public abstract class …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现 aSearchView中OptionsMenu的 a Fragment。该onQueryTextChange和onQueryTextSubmit不工作。我不确定我哪里出错了。
菜单文件:
<?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">
<item
android:id="@+id/profile"
android:orderInCategory="10"
android:title="Profile"
app:showAsAction="never">
</item>
<item
android:id="@+id/settings"
android:orderInCategory="11"
android:title="Settings"
app:showAsAction="never">
</item>
<item
android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="Search"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
我试图从 SearchView 访问文本的片段部分:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.browse_story_fragment, menu);
MenuItem myActionMenuItem = menu.findItem(R.id.action_search);
searchView = (SearchView) myActionMenuItem.getActionView();
SearchView.OnQueryTextListener listener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String query) {
query = query.toLowerCase();
Log.e("queryText",query);
return false;
}
public …Run Code Online (Sandbox Code Playgroud) 我添加了一些代码,就像在OnCreate菜单选项本
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView =
(SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
Run Code Online (Sandbox Code Playgroud)
另外我在 xml 目录中创建了一个 xml 文件,我做了这个。但我不知道如何传递搜索查询并获得结果。执行这个获取操作栏消失了。