menuitem上的actionlayout什么都不做

tip*_*ipu 55 android android-menu android-actionbar

我正在菜单项上设置actionLayout并设置背景颜色和图像,但它不受尊重.在我的活动中,我有:

getMenuInflater().inflate(R.menu.submit_action, menu);
Run Code Online (Sandbox Code Playgroud)

我的submit_action是:

<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>
Run Code Online (Sandbox Code Playgroud)

我的支票布局是

<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>
Run Code Online (Sandbox Code Playgroud)

但即使使用了所有这些设置,这就是操作栏的显示方式,根本不显示我的menuitem(但它在那里,因为它响应了点击,但没有出现):

在此输入图像描述

Ben*_*ris 219

尝试app:actionLayout="@layout/check"而不是android:actionLayout="@layout/check".

如果您正在使用ActionbarSherlockAppCompat,android:命名空间将不适用于MenuItems.这是因为这些库使用模仿Android API的自定义属性,因为它们在早期版本的框架中不存在.

  • @clu否,app是XML中定义的命名空间.它指的是应用程序兼容性库.如果应用无法解析,请在<xml>标记中粘贴xmlns:app ="http://schemas.android.com/apk/res-auto".(是的,旧评论,在此处提供更多信息以帮助那些可能谷歌). (4认同)
  • @clu你可以随意使用.默认是使用"app" (3认同)
  • 通过`app:actionLayout`,他的意思是你的应用包的名称.因此,如果你的应用程序包名称是twitter,它将是`twitter:actionLayout`. (2认同)

Tar*_*ora 7

使用Appcompact时,菜单项就像

<item android:id="@+id/cart"
    app:actionLayout="@layout/actionbar_cart"
    android:title="@string/action_cart"
    app:showAsAction="always"
 />
Run Code Online (Sandbox Code Playgroud)


nea*_*aze 5

Ben Harris的答案绝对正确.但是,在某些情况下,比如使用以下属性:

      app:showAsAction="ifRoom|collapseActionView"
Run Code Online (Sandbox Code Playgroud)

在SearchView中使用(在我的例子中),布局视图没有显示,这给我带来了很多麻烦.appcombat中的动作视图似乎不支持collapseActionView.所以在做你的东西时也要考虑这一点.