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> 
  • Cómo get un PhoneStateListener cuando usa la funcionalidad Dual SIM
  • Proguard elimina annotations personalizadas en Kotlin
  • Mongo Auditing trabaja selectivamente
  • Al crear una interfaz en Kotlin, ¿importa si las properties tienen get / set?
  • java.util.logging.Logger en class probada
  • Problema de context al usar Anko DSL dentro del adaptador personalizado para ListView
  • MutableLiveData con Kotlin Multiple Layler Genérico no funciona
  • ¿Por qué esta class se considera final?
  • ¿Cómo puedo usar la callback en Kotlin?
  • Herencia múltiple en Kotlin
  • ¿Cómo encontrar qué elemento no comparó las matrices en Kotlin?