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 puedo verificar el tipo genérico en Kotlin?
  • Cómo acceder a la variable de instancia en un object complementario estático en Koltin
  • ¿Por qué la variable no se puede inicializar correctamente en la function en línea como en Java?
  • ¿Es posible definir un valor pnetworkingeterminado para una function de parámetro?
  • Elenco dynamic en Kotlin
  • Error de compilation de Android 3.0 Canary: Versión major.minor no compatible 52.0
  • "Lateinit" o "by perezoso" cuando se define global android.widget var / val
  • propiedad de delegado kotlin, en un método get () cómo puedo acceder al valor?
  • El uso de la function de lectura de AudioRecord en Kotlin no coincide con los arguments de los types de plataforma
  • La demostración IOU de Corda V1.0 no funciona en Windows
  • Kotlin: ¿Qué es kotlin.String! tipo