如何隐藏Searchview中的后退按钮

Jam*_*mes 1 android searchview

有谁知道如何隐藏AppCompat v21 searchview中的后退按钮?(绿线概述)

searchview后退按钮

我搜索了很多但找不到任何有用的东西.

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" />
Run Code Online (Sandbox Code Playgroud)

主要活动:

 @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);
}
Run Code Online (Sandbox Code Playgroud)

注意:行为showAsAction:始终并使用方法menuItemsVisibility()来调整工具栏项的可见性是有意的.

另一个注意事项:MainActivity扩展了ActionBarActivity,它还实现了ObservableScrollView库中的ObservableScrollViewCallbacks实现.

Lib*_*mas 5

将app:showAsAction ="always | collapseActionView"更改为app:showAsAction ="always"