ambas aplicaciones: showAsAction = "ifRoom" y android: showAsAction = "ifRoom" no funcionan como se esperaba

Tengo un menu de opciones definido como

<?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:title="@string/action_search" android:icon="@drawable/ic_search_white_24dp" android:orderInCategory="1" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always|collapseActionView"/> <item android:id="@+id/action_favorite" android:title="@string/action_favorite_add" android:icon="@drawable/ic_favorite_border_white_24dp" android:orderInCategory="2" app:showAsAction="ifRoom" /> <item android:id="@+id/action_info" android:title="@string/action_info" android:icon="@drawable/ic_info_outline_white_24dp" android:orderInCategory="3" app:showAsAction="ifRoom" /> </menu> 

El menu de opciones en sí funciona correctamente, sin embargo, las acciones de ifRoom no queuepsan a un desbordamiento cuando tengo un título de barra de herramientas más largo. En cambio, el título de la barra de herramientas se trunca.

Si uso android:showAsAction lugar de la app:showAsAction e ignoro el error con respecto a la biblioteca de soporte, los elementos siempre se queuepsan a un desbordamiento. No importa la longitud del título.

También debería mencionar que la barra de herramientas está dentro de una barra de herramientas plegable

Me gustaría que el ítem de acción de búsqueda aparezca siempre (sin importar la longitud del título) y que los otros dos ítems aparezcan solo si el título de la barra de herramientas no está truncado.

ACTUALIZACIÓN : layout y onCreate

 <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:background="@color/white"> <android.support.design.widget.AppBarLayout android:id="@+id/rm_app_bar_layout" android:layout_width="match_parent" android:layout_height="160dp" android:layout_gravity="top" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:elevation="0dp"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/rm_collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:titleEnabled="false" app:layout_scrollFlags="scroll|snap|exitUntilCollapsed" app:contentScrim="@color/colorPrimary" app:statusBarScrim="?attr/colorPrimary" > <RelativeLayout android:id="@+id/rm_expanded_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:layout_collapseMode="parallax"> <ImageView android:id="@+id/rm_img_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:imagePlaceholder="@{@drawable/img_placeholder}" app:imageUrl="@{vm.imageUrl}" android:scaleType="centerCrop" /> <!-- Some other layouts overlayed over the image view --> </RelativeLayout> <android.support.v7.widget.Toolbar android:id="@+id/rm_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:title="@{vm.name}" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <!-- rest of layout --> </LinearLayout> </android.support.design.widget.CoordinatorLayout> 

onCreate

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) activityComponent().inject(this) setAndBindContentView(R.layout.activity_some_activity, savedInstanceState) setTranslucentStatusBar() setSupportActionBar(binding.rmToolbar) supportActionBar?.let { it.setDisplayHomeAsUpEnabled(true) it.setDisplayShowTitleEnabled(true) } binding.rmAppBarLayout.addOnOffsetChangedListener(object: AppBarStateChangeListener() { override fun onStateChanged(appBarLayout: AppBarLayout?, state: State) { if (state != State.IDLE) { // collapsed or expanded invalidateOptionsMenu() } } }) // some other view code // viewModel load code } 

Por favor testing esta esperanza para que te sea útil. No sé si esto funciona en general, pero en mi caso sí lo hace:

 <?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:title="@string/action_search" android:icon="@drawable/ic_search_white_24dp" android:orderInCategory="1" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always|collapseActionView"/> <item android:id="@+id/action_favorite" android:title="@string/action_favorite_add" android:icon="@drawable/ic_favorite_border_white_24dp" android:orderInCategory="2" app:showAsAction="collapseActionView" /> <item android:id="@+id/action_info" android:title="@string/action_info" android:icon="@drawable/ic_info_outline_white_24dp" android:orderInCategory="3" app:showAsAction="collapseActionView" /> </menu> 
  • Kotlin: "val someVar = if (xx) 1 else 1.0", ¿por qué someVar es "Any"?
  • ¿El mapTo () de Kotlin sobrescribirá los datos que ya están en la matriz?
  • ¿Qué significa la advertencia «Usar properties de los packages de variante de compilation»?
  • Kotlin: ¿A dónde deberían ir las funciones de nivel superior?
  • Android Spinner getDropDownView repite elementos después de la selección
  • Problemas henetworkingando la class interna de Java
  • Referencias a funciones genéricas
  • ¿Cuál es la forma correcta de hacer reference a un div dentro de ReactDOMBuilder.render?
  • Error: ejecución fallida para la tarea ': aplicación: limpiar'. No se puede borrar el file
  • GMaps Android API y GeoJson, cómo cubrir todo el mundo con un agujero
  • Android: Kotlin con cuchillo de mantequilla