如何隐藏在搜索查看后退按钮 [英] How can I hide the back button in Searchview

查看:170
本文介绍了如何隐藏在搜索查看后退按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道如何隐藏应用程序兼容性V21搜索查看后退按钮? (绿色线轮廓)

Does anyone know how to hide the back button in AppCompat v21 searchview? (outlined by green line)

我已经搜查了很多,但找不到任何有用。

I've searched a lot but couldn't find anything useful.

menu_main.xml:

menu_main.xml:

<item android:id="@+id/search"
        android:title="@string/search_title"
        app:showAsAction="always|collapseActionView"
        android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
        android:orderInCategory="300"
        app:actionViewClass="android.support.v7.widget.SearchView" />

<item android:id="@+id/action_home"
    android:title="Home"
    android:icon="@drawable/v_home"
    app:showAsAction="always"
    android:orderInCategory="180"/>

<item android:id="@+id/action_favorites"
    android:title="Favorites"
    android:icon="@drawable/v_favorites"
    app:showAsAction="always" />

MainActivity:

MainActivity:

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);

        firstMenu = menu;


        searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

        MenuItem searchItem = menu.findItem(R.id.search);
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setSubmitButtonEnabled(true);
        searchView.setActivated(true);


        searchView.setOnSearchClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                menuItemsVisibility(false);
            }
        });
        searchView.setOnCloseListener(new SearchView.OnCloseListener() {
            @Override
            public boolean onClose() {
                menuItemsVisibility(true);
                return false;
            }
        });

        return true;
    }

    @Override
    public void onBackPressed() {
        menuItemsVisibility(true);
        super.onBackPressed();
    }

// setting visibility of menu items on search
private void menuItemsVisibility(boolean visibility) {

    MenuItem homeItem = firstMenu.findItem(R.id.action_home);
    MenuItem favoriteItem = firstMenu.findItem(R.id.action_favorites);
    MenuItem otItem = firstMenu.findItem(R.id.action_ot);
    MenuItem ntItem = firstMenu.findItem(R.id.action_nt);
    homeItem.setVisible(visibility);
    favoriteItem.setVisible(visibility);
    otItem.setVisible(visibility);
    ntItem.setVisible(visibility);
}

请注意:行为showAsAction:始终使用方法menuItemsVisibility()来调节的工具栏项目的知名度是故意的。

Note: the behavior showAsAction:Always and using methods menuItemsVisibility() to adjust the visibility of toolbar items is intentional.

另注:MainActivity扩展ActionBarActivity,它也从ObservableScrollView库实现工具ObservableScrollViewCallbacks

Another Note: MainActivity extends ActionBarActivity and it also implements implements ObservableScrollViewCallbacks from ObservableScrollView Library.

推荐答案

使用方法:

getSupportActionBar().setDisplayHomeAsUpEnabled(false);

为了从动作栏中删除主页按钮。

in order to remove the home button from the action bar.

这篇关于如何隐藏在搜索查看后退按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆