标签: searchview

在没有ActionBarSherlock的情况下更改SearchView中的光标颜色

我试图在ICS +中的SearchView小部件上更改闪烁光标的颜色.我尝试过以下方法:

  • 添加<item name="android:textCursorDrawable">@null</item>到我的主题
  • 将AutoCompleteTextViews的样式添加到我的主题并将该样式的textCursorAttribute设置为@null
  • android:textCursorDrawable="@null"直接在SearchView上设置

我在这里阅读答案(SearchView中的自定义光标颜色),但是searchAutoCompleteTextView没有非ABS样式,所以无法尝试这个.我还寻找了一个Java方法来设置文本光标drawable,但找不到 - 我正在修改Java中SearchView的其他方面,并且如果有可用的方法,可以使用光标这样做.

我已经非常广泛地定制了SearchView,但最后一个改变是让它看起来不正确 - 光标在白色背景上是白色的,所以它不容易看到.我可以尝试其他任何想法吗?

android searchview

8
推荐指数
1
解决办法
1万
查看次数

使用支持库v21设置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

8
推荐指数
1
解决办法
4255
查看次数

如何删除Android搜索视图左侧的空间(不属于操作栏)?

我在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)

layout android padding gravity searchview

8
推荐指数
3
解决办法
7646
查看次数

显示ActionBarSherlock SearchView始终展开

我需要在ActionBar中显示SearchView总是展开和另外一个按钮,以便用户快速访问Search Activity中的搜索字符串.
我的活动有这个菜单布局:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/action_search"
        android:title="@string/action_search"
        android:icon="@drawable/ic_action_search"
        android:showAsAction="always"
        android:actionViewClass="com.actionbarsherlock.widget.SearchView"/>
    <item android:id="@+id/action_configure"
        android:title="@string/action_configure"
        android:icon="@android:drawable/ic_menu_preferences"
        android:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)

在Search活动类中,我按如下方式配置ActionBar:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.search, 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);
    searchView.setSubmitButtonEnabled(false);
return true;
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果我这样做,searchView.setIconifiedByDefault(false);我会看到这张图片:
在此输入图像描述

您可以注意到没有第二个菜单项.在这里,如果我设置android:showAsAction ="always | collapseActionView",它默认会折叠,但我现在可以看到第二项:
在此输入图像描述
在上图中我已按下搜索图标

有两个问题我无法弄清楚:

  1. 如何始终显示两个元素:扩展搜索视图和配置操作图标?
  2. 如何摆脱这个丑陋的第二个搜索图标?

android actionbarsherlock searchview

7
推荐指数
1
解决办法
7227
查看次数

使用Searchview搜索RecyclerView

我想搜索RecyclerView,我有List<BaseOfCards> (BaseOfCards是我的getter和setter类)我的RecyclerViewAdapter:

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {


private LayoutInflater inflater;
private List<BaseOfCards> items;

//private int itemLayout;
//String cardvalue;
private Activity mActivity;

public RecyclerViewAdapter(Activity mActivity, Context context, List<BaseOfCards> items) {
    this.mActivity = mActivity;
    inflater = LayoutInflater.from(context);
    this.items = items;
    //this.itemLayout = itemLayout;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View view = inflater.inflate(R.layout.custom_row, parent, false);
    MyViewHolder holder = new MyViewHolder(view, mActivity);
    return holder;
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {

    BaseOfCards …
Run Code Online (Sandbox Code Playgroud)

android searchview recycler-adapter android-recyclerview

7
推荐指数
1
解决办法
9374
查看次数

如何为AutoCompleteTextView建议添加空间

当用户从自动完成建议中选择文本时,我想添加空格,所以当他继续输入时,他将从一个新单词开始.

我尝试使用它,TextWatcher但我得到了IndexOutOfBoundsException.

有什么建议?

在此输入图像描述

我使用的文本观察者是:

    private class AddSpaceTextWatcher implements TextWatcher{

    boolean shouldAddSpace = false;

    @Override
    public void beforeTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (count - before > 1) // check that the new input is not from the keyboard
            shouldAddSpace = true;
    }

    @Override
    public void afterTextChanged(Editable editable) {
        if (shouldAddSpace) {
            shouldAddSpace = false;
            mAutoCompleteTextView.setText(" ");
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

android autocompletetextview searchview

7
推荐指数
1
解决办法
1688
查看次数

Android SearchView 需要点击两次才能展开视图

简短:当我单击 SearchViewIcon 时,SearchView 不会折叠/展开。

长:

我正在使用 SearchView 在我的 MainActivity 中的 Fragment 中过滤 RecyclerView。

当我点击 SearchViewIcon 时(SearchView 默认是图标化的)。我使用以下代码打开带有正确片段的选项卡:

searchView.setOnSearchClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewPager.setCurrentItem(2, false);
            }
        });
Run Code Online (Sandbox Code Playgroud)

带有正确片段的选项卡按预期打开。还显示了文本输入,但 SearchView 保持图标化。(见下图。)

应用

我在 XML 中的 SearchView:

<item
    android:id="@+id/action_search"
    android:orderInCategory="1"
    android:icon="@android:drawable/ic_menu_search"
    android:title="@string/menu_item_search_title"
    app:showAsAction="ifRoom"
    app:queryHint="Search name or function"
    app:actionViewClass="android.support.v7.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

我已经尝试过的事情:

将我的 showAsAction 设置为 always 或 ifRoom|collapseActionView

app:showAsAction="always"
app:showAsAction="ifRoom|collapseActionView"
Run Code Online (Sandbox Code Playgroud)

请求关注我的 SearchView:

searchView.requestFocus();
Run Code Online (Sandbox Code Playgroud)

扩展我的 SearchViewItem:

MenuItem searchViewItem = menu.findItem(R.id.action_search);
searchViewItem.expandActionView();
Run Code Online (Sandbox Code Playgroud)

但这些事情都没有奏效......

编辑就像标题所说,如果我再次单击 SearchViewIcon,SearchView 会展开。

android searchview android-recyclerview

7
推荐指数
1
解决办法
1804
查看次数

如何在可搜索的微调器中使用SearchView.OnQueryTextListener()?

我正在使用第三方库创建一个可搜索的微调器.我在我的应用程序中添加了库类(SearchableListDialog,SearchableSpinner).一切都工作正常,但仍然是我面临的一个问题,例如,在搜索视图小部件中,如果我搜索Abc,我没有将结果过滤为Abc但是当点击列表视图项时,结果显示项目为ABC.这就像位置是项目的更改,但列表没有显示可搜索的结果.我不知道我哪里错了.我多次修改代码但没有得到理想的结果.

在此输入图像描述

Searchable Spinner xml代码:

 <com.example.my.currencyconverterapp.activity.SearchableSpinner
                    android:id="@+id/spinner"
                    android:layout_below="@+id/rl_currency_converterted_data"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />  
Run Code Online (Sandbox Code Playgroud)

这是我的片段代码,我正在为可搜索的微调器设置适配器.

countriesCustomAdapterInr = new CountriesCustomAdapterInr(getActivity(), R.layout.custom_spinner_items, arrayList,res);
        spinner.setAdapter(countriesCustomAdapterInr);
        assert spinner != null;
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(getActivity(), ""+arrayList.get(i).getFull_name()+i, Toast.LENGTH_LONG).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {}
        });  
Run Code Online (Sandbox Code Playgroud)

这是第三方SearchableSpinner类:

public class SearchableSpinner extends android.support.v7.widget.AppCompatSpinner implements View.OnTouchListener,
        SearchableListDialog.SearchableItem {

    public static final int NO_ITEM_SELECTED = -1;
    private Context _context;
    private List _items;
    private SearchableListDialog _searchableListDialog;

    private boolean _isDirty;
    private ArrayAdapter _arrayAdapter; …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter android-spinner searchview

7
推荐指数
2
解决办法
2194
查看次数

如何删除android SearchView组件中的底线?

如何删除android SearchView组件中的底线?就像这张图片:

在此处输入图片说明

android searchview android-toolbar

7
推荐指数
3
解决办法
6439
查看次数

未应用自定义 SearchView 样式

我正在尝试SearchView在工具栏中设置自定义样式,但我发现的所有建议解决方案均无效,并且未应用该样式。我正在使用androidx.appcompat.widget.SearchViewSearchView的版本。

styles.xml我为 SearchView 创建了一个自定义样式并将其应用到 AppTheme 但 SearchView 的外观不会改变。我已经尝试了多种不同的风格属性,但没有任何改变。

样式.xml:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="searchViewStyle">@style/CustomSearchViewStyle</item>
    </style>

    <style name="AppTheme.Toolbar" parent="Base.ThemeOverlay.AppCompat.Dark.ActionBar">
        <item name="searchViewStyle">@style/CustomSearchViewStyle</item>
    </style>

    <style name="CustomSearchViewStyle" parent="Widget.AppCompat.SearchView">
        <item name="searchIcon">@drawable/ic_custom_search</item>
        <item name="suggestionRowLayout">@layout/custom_search_row</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

菜单.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">
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_search_white_24dp"
        android:orderInCategory="100"
        android:title="@string/search"
        app:actionViewClass="androidx.appcompat.widget.SearchView"
        app:showAsAction="collapseActionView|ifRoom" />

</menu>
Run Code Online (Sandbox Code Playgroud)

我只想修改最近搜索建议列表中的时钟图标,但未应用自定义样式,我找不到任何其他方法来做到这一点。

编辑 1: 我刚刚将相同的内容添加androidx.appcompat.widget.SearchView到常规布局文件中,然后正确应用了样式。但是当用作actionViewClass在菜单中使用时,样式将被忽略。您知道如何在用作 时也应用样式actionViewClass吗?

android menu android-layout searchview

7
推荐指数
1
解决办法
2758
查看次数