La entrada de texto en SearchView no se muestra

Me di cuenta hace un par de días que la introducción de texto en mi SearchView no aparece. Tal vez este problema comenzó hace mucho tiempo y no lo había notado, pero sé que todo estaba funcionando bien cuando configuré por primera vez la funcionalidad de búsqueda.

Aquí hay una captura de pantalla (ya he ingresado texto, y se puede ver que no se muestra):

Introduzca aquí la descripción de la imagen

Ya he intentado cambiar el color del texto en el SearchView , con esta pregunta SO , y también he intentado cambiar el color del texto en mi archivo XML de configuración de búsqueda. Después de encontrar que ninguno de estos trabajos, deshice mis cambios para que pueda ver el código que actualmente tengo a continuación:

MainActivity.java

 @Override public boolean onCreateOptionsMenu(Menu) { ... // Associate searchable configuration with the SearchView SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE); MenuItem searchMenuItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) searchMenuItem.getActionView(); searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(this, SearchResultsActivity.class))); // Note: getSearchableInfo(getComponentName()) will not work on all flavours // because of a difference in app IDs } 

Tenga en cuenta que he utilizado new ComponentName(...) lugar de getSearchableInfo(getComponentName()) ya que uso diferentes nombres de paquetes en mis diferentes sabores.

La actividad anterior es donde se muestra el SearchView . Los resultados se muestran en otra actividad.

Searchable.xml

 <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_name" android:hint="@string/search_hint" /> 

AndroidManifest.xml

  ... <activity android:name=".ui.MainActivity" android:label="@string/title_activity_main" android:theme="@style/AppTheme"> <meta-data android:name="android.app.default_searchable" android:value=".SearchResultsActivity" /> </activity> ... <activity android:name=".ui.filter.SearchResultsActivity" android:label="@string/title_activity_search_results" android:parentActivityName=".ui.MainActivity" android:theme="@style/AppTheme.Search"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.companyname.appname.ui.MainActivity" /> <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> </activity> ... 

Styles.xml (la actividad que contiene el AppTheme.NavDrawer utiliza AppTheme.NavDrawer )

 ... <style name="Base.AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="colorButtonNormal">?colorAccent</item> </style> <style name="AppTheme" parent="Base.AppTheme"> <item name="colorPrimary">@color/theme_primary</item> <item name="colorPrimaryDark">@color/theme_primary_dark</item> <item name="colorAccent">@color/theme_accent</item> </style> <style name="AppTheme.NavDrawer"> <item name="android:windowBackground">@color/window_background</item> </style> ... 

V21 / styles.xml

 <style name="AppTheme.NavDrawer"> <item name="android:windowBackground">@color/window_background</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item> </style> .... 

Activity_main_filterable.xml (el diseño que usa mi actividad)

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawerLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" > <include layout="@layout/activity_main_content" /> <include layout="@layout/navdrawer" android:id="@+id/navigationView" /> <include layout="@layout/filter_drawer" android:id="@+id/filter_drawer" /> </android.support.v4.widget.DrawerLayout> 

Activity_main_content.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:ads="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/adView"> <android.support.design.widget.AppBarLayout android:fitsSystemWindows="true" android:layout_width="match_parent" android:layout_height="wrap_content" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" style="@style/AppTheme.Toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" app:layout_scrollFlags="scroll|enterAlways"/> <include layout="@layout/blank" /> <!-- This is to prevent bugs --> </android.support.design.widget.AppBarLayout> <include layout="@layout/fragment_misc_no_results" android:id="@+id/fragment_no_results"/> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" style="@style/AppTheme.RecyclerView.StandardList" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> <com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" ads:adSize="SMART_BANNER" ads:adUnitId="@string/banner_ad_unit_id" /> </RelativeLayout> 

¿Alguna idea sobre lo que podría estar pasando o cómo debería solucionarlo?

Tuve el mismo problema, y ​​para mí fue porque había establecido la altura de mi barra de herramientas en wrap_content. Intente darle un tamaño, como esto:

 <android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:theme="@style/ToolbarTheme" app:popupTheme="@style/AppTheme.PopupOverlay" app:layout_scrollFlags="scroll|enterAlways" /> 

Este es el código que utilizo para mi proyecto reciente y funciona bien:

Primero defina search_menu.xml (asegúrese de usar android supportV7 ):

 <?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/search" android:icon="@drawable/ic_search_gray" android:title="@string/action_search" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always" /> </menu> 

A continuación, defina en su onCreateOptionMenu de su Actividad:

 MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_search, menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.search)); searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(getApplicationContext(), SearchActivity.class))); searchView.setMaxWidth(Integer.MAX_VALUE); MenuItemCompat.expandActionView(menu.findItem(R.id.search)); searchView.setIconifiedByDefault(true); searchView.setIconified(false); 

También mi barra de herramientas:

 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/gray_lightest" android:minHeight="?attr/actionBarSize" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:contentInsetStartWithNavigation="0dp" /> 

Agregue meta-datos a su AndroidManifest.xml :

  <activity android:name=".ui.activity.SearchActivity" android:launchMode="singleTop"> <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" android:value=".ui.activity.SearchActivity" /> </activity> 

Resultado final:

Introduzca aquí la descripción de la imagen

  • Barra de Acción Sherlock SearchView no se expande al hacer clic
  • Widget SearchView no aparece en la barra de acciones
  • No se puede ocultar el teclado virtual de SearchView iconfiedbydefault (false)
  • Cambio del fondo dibujable del widget de búsqueda
  • ¿Cómo mover el icono de búsqueda de SearchView a la derecha?
  • Cómo descartar el teclado en Android SearchView?
  • Cómo agregar un SearchWidget a la ActionBar?
  • Pasar la consulta de búsqueda ActionBar para fragmentar
  • ¿Es posible alinear a la izquierda SearchView en AppCompat 21 con la barra de herramientas?
  • Cómo utilizar onQueryTextChange con muchos fragmentos
  • Android: haga que la barra de búsqueda completa pueda hacer clic
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.