Ответ дается @Hiep правильно я следую тем шагам, чтобы получить мое решение .but я использовал ActionbarCompact lib, поэтому нужно внести некоторые изменения, чтобы заставить его работать Это решение является только измененным анвью ЭВ Hiep, если вы используете appcompact
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:materialdesign="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
android:title="search"
android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
materialdesign:showAsAction="always|collapseActionView"
materialdesign:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
И в главном классе onCreateOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_swipe_tabbed, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
// Get the SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
ActionBar.LayoutParams params = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT);
searchView.setLayoutParams(params);
searchView.setIconified(false);
MenuItemCompat.expandActionView(searchItem);
return super.onCreateOptionsMenu(menu);
}
Избегайте SearchView от коллапса: Если и использовать вышеупомянутый метод в Appcompact создаст аварию поэтому используйте это решение, чтобы этого избежать.
MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
/* (non-Javadoc)
* @see android.support.v4.view.MenuItemCompat.OnActionExpandListener#onMenuItemActionExpand(android.view.MenuItem)
*/
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}
/* (non-Javadoc)
* @see android.support.v4.view.MenuItemCompat.OnActionExpandListener#onMenuItemActionCollapse(android.view.MenuItem)
*/
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
return false;
}
});
Спасибо
использование ActionBarSherlock .. –
Проверьте свой ответ на этот вопрос: HTTP: //stackoverflow.com/questions/13660225/how-to-make-search-menu-item-to-a-full-view-in-the-action-bar-using-abs/18648708#18648708 – Szymon
Я создаю это приложение для 4.0 и выше, поэтому я не думаю, что мне нужно использовать actionBarSherLock! Есть ли способ сделать это в обычном actionBar? – user2364935