studio item custom color actionlayout android android-actionbar android-menu

android - custom - Actionlayout en Menuitem no hace nada.



custom menu item android (3)

Al usar Appcompact, el elemento del menú será como

<item android:id="@+id/cart" app:actionLayout="@layout/actionbar_cart" android:title="@string/action_cart" app:showAsAction="always" />

Estoy configurando un ActionLayout en un elemento del menú y configurando el color de fondo y la imagen, pero no se respeta en mi actividad tengo:

getMenuInflater().inflate(R.menu.submit_action, menu);

mi submit_action es:

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_submit" android:actionLayout="@layout/check" app:showAsAction="always" /> </menu>

mi diseño de cheque es

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" style="?android:attr/actionButtonStyle" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#e8e8e8" android:clickable="true" android:contentDescription="lol" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@null" android:scaleType="centerInside" android:src="@drawable/ic_action_tick" /> </RelativeLayout>

pero incluso con toda esta configuración, así es como aparece la barra de acción, sin mostrar mi artículo (pero está ahí porque responde al clic, pero no aparece):


La respuesta de Ben Harris es absolutamente correcta. Sin embargo, en algunos casos como cuando se usan atributos como:

app:showAsAction="ifRoom|collapseActionView"

utilizada en SearchView (en mi caso), la vista de diseño no se muestra y eso me causó muchos dolores de cabeza. Parece que collapseActionView no es compatible con la vista de acción en appcombat. Así que considera esto también mientras haces tus cosas.


Pruebe la app:actionLayout="@layout/check" lugar de android:actionLayout="@layout/check" .

Si está utilizando ActionbarSherlock o AppCompat , el espacio de nombres de android: no funcionará para MenuItem s. Esto se debe a que estas bibliotecas utilizan atributos personalizados que imitan las API de Android, ya que no existían en versiones anteriores del marco.