Intereting Posts
Android рассчитывает прокрутку в позиции HorizontalScrollView Всплывающие окна в StickyGridHeader отображают неправильное положение Android прокручивает, используя ViewPager без вкладок Как закрыть / убить приложение на устройстве Android с помощью appium? Как получить зарегистрированный адрес электронной почты пользователя с помощью Graph Request в Facebook Android sdk 4.0 ActionBarSherlock – удалите значок приложения в представлении действий (и других проблемах с дизайном) Ошибка Unity: ошибка при создании игрока Подождите, пока эмулятор Android будет запущен перед следующей командой оболочки? Как сделать упор на несколько действий @ Синглтон в кинжале 2 потокобезопасен? Ошибка обновления iventory (запрос цен на предметы). (Ответ: 6: ошибка) Жесткие папки для карманных компьютеров высокого разрешения Как сохранить и восстановить состояние веб-просмотра? Как указать пальцем на объектив камеры или нет в андроиде? Получить эскиз Uri / путь к изображению, сохраненный в SD-карте + Android

Развернуть Поиск Открыть, чтобы использовать всю панель действий (скрыть другие вещи)

У меня есть SearchView внутри моего ActionBar , и я хочу использовать весь ActionBar при нажатии значка поиска, но я могу использовать только свободное пространство ActionBar

Например: http://imgur.com/wnjMfWO

Мой код меню:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="br.com.moderna.houaiss.activity.SearchActivity" > <item android:id="@+id/search" android:actionViewClass="android.widget.SearchView" android:icon="@drawable/ic_search_white_48dp" android:showAsAction="collapseActionView|always" android:title="@string/search"/> <item android:id="@+id/backWardHistory" android:icon="@drawable/ic_arrow_back_white_48dp" android:showAsAction="always" android:title="@string/back_history"/> <item android:id="@+id/forWardHistory" android:icon="@drawable/ic_arrow_forward_white_48dp" android:showAsAction="always" android:title="@string/forward_history"/> <item android:id="@+id/action_home" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_home"/> <item android:id="@+id/action_about" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_about"/> <item android:id="@+id/action_configuration" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_configuration"/> <item android:id="@+id/action_logout" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_logout"/> 

Я попробовал android:showAsAction="ifRoom" , но мне нужно, чтобы они всегда были на моем ActionBar , а не внутри моего меню.

РЕДАКТИРОВАТЬ ——

Благодаря @Simas,

Для достижения этого эффекта я использовал метод setOnActionExpandListener

 final MenuItem searchItem = menu.findItem(R.id.search); searchItem.setOnActionExpandListener(new OnActionExpandListener() { @Override public boolean onMenuItemActionExpand(final MenuItem item) { SearchActivity.this.setItemsVisibility(menu, searchItem, false); return true; } @Override public boolean onMenuItemActionCollapse(final MenuItem item) { SearchActivity.this.setItemsVisibility(menu, searchItem, true); return true; } }); private void setItemsVisibility(final Menu menu, final MenuItem exception, final boolean visible) { for (int i = 0; i < menu.size(); ++i) { MenuItem item = menu.getItem(i); if (item != exception) item.setVisible(visible); } } 

Ну, вы можете подражать этому себе, спрятав все остальные предметы при расширении SearchView :

 @Override public boolean onCreateOptionsMenu(final Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); final MenuItem searchItem = menu.findItem(R.id.search); SearchView searchView = (android.widget.SearchView) searchItem.getActionView(); // Detect SearchView icon clicks searchView.setOnSearchClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setItemsVisibility(menu, searchItem, false); } }); // Detect SearchView close searchView.setOnCloseListener(new SearchView.OnCloseListener() { @Override public boolean onClose() { setItemsVisibility(menu, searchItem, true); return false; } }); return super.onCreateOptionsMenu(menu); } private void setItemsVisibility(Menu menu, MenuItem exception, boolean visible) { for (int i=0; i<menu.size(); ++i) { MenuItem item = menu.getItem(i); if (item != exception) item.setVisible(visible); } } 

Это будет поздний ответ, но вы можете добавить этот атрибут в свой пункт меню, и работа будет выполнена для вас.

 app:showAsAction="collapseActionView|always" 

Ключевое слово здесь – collapseActionView.