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> 
  • Actualizar búsquedaVer mientras se elimina la consulta de Android
  • Android con Kotlin - Cómo usar HttpUrlConnection
  • Single.zip completando antes de Success
  • Kotlin comtesting si la function requiere parámetro de instancia
  • En Kotlin, ¿cómo agrego methods de extensión a otra class, pero solo visibles en un context determinado?
  • ¿Cómo get javaclass de java type array en Kotlin?
  • No se puede encontrar la vista en la hoja inferior con Espresso
  • doAsync Kotlin-android no funciona bien
  • Kotlin: ArrayIndexOutOfBoundsException durante la conversión de DispatchTask a cadena
  • Cómo llenar una vista de list usando Kotlin, retroadaptación y RXjava
  • Manejo de la tecla Enter en EditText (Kotlin, Android)