¿Quitar icono / título para la barra de acción con SearchView ampliado?
He creado un nuevo proyecto, dirigido a api 11 y superior. Tengo una actividad donde quiero un SearchView ampliado de forma predeterminada:
@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_search, menu); MenuItem searchItem = menu.findItem(R.id.action_search); mSearchView = (SearchView) searchItem.getActionView(); mSearchView.setIconifiedByDefault(false); }
Que funciona, pero no quiero ningún ícono o título en la barra de acción, sólo la vista de búsqueda. Traté de deshacerme de mi título e icono haciendo:
getActionBar().setDisplayHomeAsUpEnabled(false); getActionBar().setDisplayShowTitleEnabled(false); getActionBar().setIcon(android.R.color.transparent);
Pero mi barra de acción todavía tiene este relleno a la izquierda de la vista de búsqueda:
¿Hay una manera de deshacerse de él?
Gracias
——– Editar ——————–
Aquí está mi actividad completa:
public class GreatAndroid extends FragmentActivity { private SearchView mSearchView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActionBar().setDisplayShowHomeEnabled(false); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu_search, menu); MenuItem mi = menu.findItem(R.id.action_search); mSearchView = (SearchView) mi.getActionView(); mSearchView.setIconifiedByDefault(false); return true; } }
Y aquí está el menú xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_search" android:title="@string/search" android:icon="@android:drawable/ic_menu_search" android:showAsAction="always" android:actionViewClass="android.widget.SearchView" /> </menu>
A pesar de que el icono es transparente, todavía ocupa el espacio:
getActionBar().setIcon(android.R.color.transparent);
Quite esta línea y agregue:
getActionBar().setDisplayShowHomeEnabled(false);
Ahora, debe tener el SearchView ocupar todo el espacio disponible.
Los elementos de acción que pueden colapsarse tienen un ancho máximo. La única solución que se me ocurre es la siguiente:
public class GreatAndroid extends FragmentActivity { private SearchView mSearchView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActionBar().setDisplayShowHomeEnabled(false); getActionBar().setDisplayShowTitleEnabled(false); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu_search, menu); MenuItem mi = menu.findItem(R.id.action_search); mSearchView = (SearchView) mi.getActionView(); mSearchView.setIconifiedByDefault(false); // You can use Display.getSize(Point) from API 13 onwards. // For API 11 and 12, use Display.getWidth() final Point p = new Point(); getWindowManager().getDefaultDisplay().getSize(p); // Create LayoutParams with width set to screen's width LayoutParams params = new LayoutParams(px, LayoutParams.MATCH_PARENT); mSearchView.setLayoutParams(params); return true; } }
Aunque parece que todavía hay espacio a la izquierda, puede utilizar mSearchView.setBackgroundColor(Color.RED);
Para ver que realmente no lo es.
No pude conseguir @ Awnser de Vikram para trabajar, pero encontré otra respuesta de Stack Overflow:
Abra su archivo styles.xml y añada los siguientes códigos en su estilo de barra de herramientas
<item name="android:displayOptions">showHome|homeAsUp|showTitle</item> <item name="displayOptions">showHome|homeAsUp|showTitle</item> <item name="android:icon">@android:color/transparent</item> <--this do the magic!
P / s: Estoy usando Actionbar Sherlock y esto funciona muy bien
(Consulte Eliminar icono / logotipo de la barra de acción en el trabajo de Android )
En cuanto al relleno izquierdo, puedes intentar usar collapseActionView
Aquí hay un ejemplo de menú:
<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:icon="@android:drawable/ic_menu_search" android:title="@string/search_hint" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="ifRoom|collapseActionView" /> </menu>