SearchView no amplía el ancho completo

Tengo el siguiente resultado:

Introduzca aquí la descripción de la imagen

Menu.xml

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_search" android:actionLayout="@layout/my_search_view" android:icon="@android:drawable/ic_menu_search" android:title="Search" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always|collapseActionView"/> </menu> 

My_search_view.xml

 <?xml version="1.0" encoding="utf-8"?> <SearchView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxWidth="10000dp"/> 

Actividad

 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); MenuItem searchItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); searchView.setQueryHint("Поиск"); searchView.setOnQueryTextListener(this); // 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); } 

Quiero que X (acción de cierre) se encuentra a la derecha de la pantalla.

El SearchView de MenuItemCompat tiene una propiedad llamada maxWidth. Lo siguiente hace el truco:

 searchView.setMaxWidth( Integer.MAX_VALUE ); 

Estaba teniendo el mismo problema. La vista de búsqueda no se estaba expandiendo completamente. He aquí cómo solucioné el problema

En mi styles.xml i definido un estilo para SearchView

  <style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView"> <item name="queryBackground">@color/light_gray_3</item> <item name="submitBackground">@color/gray</item> <item name="closeIcon">@android:drawable/ic_menu_close_clear_cancel</item> <item name="goIcon">@drawable/abc_ic_go_search_api_mtrl_alpha</item> <item name="searchHintIcon">@null</item> <item name="android:maxWidth">1000dp</item> </style> 

Entonces en mi estilo de barra de herramientas he añadido una línea para estilizar la búsqueda

  <style name="ThemeToolbar" parent="Theme.AppCompat.Light"> <item name="colorControlNormal">@color/gray</item> <item name="colorPrimary">@android:color/white</item> <item name="android:textColorSecondary">@color/gray</item> <item name="searchViewStyle">@style/MySearchViewStyle</item> </style> 

Aquí está mi diseño de búsqueda definido en search_view_layout.xml

 <android.support.v7.widget.SearchView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/rk.chkout" android:layout_width="match_parent" android:layout_height="wrap_content" app:searchHintIcon="@null" android:maxWidth="10000dp" /> 

Y la declaración del elemento de búsqueda en menu.xml

  <item android:orderInCategory="2" android:id="@+id/action_search" android:icon="@drawable/search_icon" android:title="@string/search" app:actionLayout="@layout/search_view_layout" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always|collapseActionView"/> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.