Intereting Posts
Управление идентификационным номером GCM на сервере Адаптер в качестве докладчика? Или поговорить с докладчиком? Android и MVP Как получить статистику сетевого трафика для приложений потоковой передачи видео на Android? Невозможно включить в android.app.Fragment Эффект пульсации на выпадающем списке Spinner цветной фон (appcompat-v7 V21) Студия Android не может обновить с предупреждением Android runOnUiThread / AsyncTask не может разрешить CalledFromWrongThreadException Команды Gradle выходят из строя на API 23 Изображение эмулятора Google API (armeabi-v7a) NFC: В чем разница между лучом S-beam и Android? Отображать немощную веб-страницу на Android при собственном разрешении? Bluetooth-соединение без подтверждения пользователя Android O – Старое начало работы переднего плана все еще работает? LibGDX Google Play Игровые сервисы – Android Анимация с экрана с помощью TranslateAnimation приводит к обрезанию смежного вида Платформа Android с помощью ListView и кнопок

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

У меня есть 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.