更改搜索视图中默认的搜索图标位置

侯赛因·艾哈迈迪(Hossein Ahmadi)

我在项目中使用“搜索”视图来为用户添加搜索功能。我的问题是我想将搜索图标的位置从工具栏的右侧更改为左侧。

这是我的菜单代码:

<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/action_search"
    android:title="@android:string/search_go"
    android:icon="@drawable/search"
    app:showAsAction="ifRoom|collapseActionView"
    app:actionViewClass="android.support.v7.widget.SearchView"
    android:visible="true"/>

这是我的活动代码:

private SearchView mSearchView;
private MenuItem searchMenuItem;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    searchMenuItem = menu.findItem(R.id.action_search);
    mSearchView = (SearchView) searchMenuItem.getActionView();
    mSearchView.setLayoutParams(new ActionBar.LayoutParams(Gravity.LEFT));
    mSearchView.setOnQueryTextListener(listener);
    return true;
}

SearchView.OnQueryTextListener listener = new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        if (query.equals("") || query.equals(" ")){
            Toast.makeText(G.context,"ابتدا یک متن برای جستجو بنویسید.",Toast.LENGTH_SHORT).show();
            return false;
        }
        Intent intent = new Intent(ContentsActivity.this,SearchActivity.class);
        intent.putExtra("KEYWORD", query);
        ContentsActivity.this.startActivity(intent);
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        return false;
    }
};
侯赛因·艾哈迈迪(Hossein Ahmadi)

所以最后我找到了解决方案。请注意,这不是一个好的解决方案。但这对我来说很好。

在menu_main.xml中:

<item
    android:id="@+id/action_search"
    android:title="@android:string/search_go"
    android:icon="@drawable/search"
    app:showAsAction="always"
    app:actionViewClass="android.support.v7.widget.SearchView"
    android:visible="false"/>

在菜单文件中,我将搜索图标的可见性设置为false。所以现在当用户单击工具栏中的我的搜索图标时,我将可见性设置为true。

imgCatSearch.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mSearchView.setBackgroundColor(Color.WHITE);
            Animation anim = AnimationUtils.loadAnimation(G.context,R.anim.m_anim);
            searchMenuItem.setVisible(true);
            mSearchView.setIconified(false);
            mSearchView.startAnimation(anim);
        }
    });

因此,当用户单击操作栏中的搜索按钮时,搜索视图的可见性将变为true并打开。

最后,此代码适用于用户单击searchView中的关闭按钮时:

mSearchView.setOnCloseListener(new SearchView.OnCloseListener() {
        @Override
        public boolean onClose() {
            searchMenuItem.setVisible(false);
            return false;
        }
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在操作栏中删除“搜索视图”图标中的多余空间

来自分类Dev

如何在列表视图中搜索

来自分类Dev

在操作栏中更改搜索图标

来自分类Dev

更改离子视图中离子视图标题的颜色

来自分类Dev

键入时搜索栏从视图中消失

来自分类Dev

更改Vim中的默认搜索条件

来自分类Dev

如何删除在odoo 8中单击“搜索”视图后打开的搜索视图中的“创建:选项”?

来自分类Dev

单击时更改搜索栏的位置

来自分类Dev

如何更改搜索视图的图标颜色

来自分类Dev

当我单击搜索到的项目时,搜索到的列表视图项的位置更改

来自分类Dev

如何在Windows 10中更改搜索结果的默认视图?

来自分类Dev

Vim搜索和替换:更改字符的位置

来自分类Dev

视图中多个搜索栏的方法

来自分类Dev

在我的editText搜索视图中显示光标

来自分类Dev

如何在列表视图中搜索

来自分类Dev

搜索字段似乎未显示在视图中

来自分类Dev

替换索引视图中的默认按钮图标

来自分类Dev

在所有视图中搜索字段

来自分类Dev

列表视图中的搜索功能

来自分类Dev

呈现的子视图中的搜索结果移至子视图

来自分类Dev

是否可以更改Outlook 2016默认搜索

来自分类Dev

在展开视图中更改图标

来自分类Dev

设置onitemclicklistener以搜索列表视图中显示的活动搜索结果

来自分类Dev

更改列表视图中的图标

来自分类Dev

单击时更改搜索栏的位置

来自分类Dev

在视图中显示搜索结果

来自分类Dev

在视图中搜索文本

来自分类Dev

搜索视图中的建议(高度)

来自分类Dev

无法在正确位置点击搜索视图项目