I'm targetting API level 8+ and I'd like to have a full width search view on top of the action bar, expanded by default and not collapsable. Here's what I did:
I've an ActionBar activity where I set inside onCreate:
final ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
then onCreateOptionsMenu:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat
.getActionView(searchItem);
searchView.setSearchableInfo(searchManager
.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
MenuItemCompat.expandActionView(searchItem);
return true;
}
Here my search.xml inside menu folder:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_search"
android:icon="@drawable/search"
android:title="@string/search_product"
myapp:actionViewClass="android.support.v7.widget.SearchView"
myapp:showAsAction="always">
</item>
</menu>
and my searchable.xml:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="@string/search_product"
android:label="@string/searchable"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer" >
</searchable>
This way, some extra space remains between back button and search widget. Can you help me whit this?
P.S. Why search icon is not INSIDE the widget? If I set setIconifiedByDefault to true and then click on the icon, the image remains inside the text space...