menuitem上的actionlayout什么都不做

时间:2014-04-22 06:14:05

标签: android android-actionbar android-menu

我在菜单项上设置了actionLayout并设置了背景颜色和图像,但它没有得到尊重。在我的活动中,我有:

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

我的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>

我的支票布局是

<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>

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

enter image description here

4 个答案:

答案 0 :(得分:210)

尝试使用app:actionLayout="@layout/check"代替android:actionLayout="@layout/check"

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

答案 1 :(得分:6)

使用Appcompact时,菜单项将如

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

答案 2 :(得分:5)

本哈里斯的回答绝对正确。但是,在某些情况下,比如使用以下属性:

      app:showAsAction="ifRoom|collapseActionView"
在SearchView中使用

(在我的例子中),布局视图没有显示,这给我带来了很多麻烦。 appcombat中的动作视图似乎不支持collapseActionView。所以在做你的事情时也要考虑这个。

答案 3 :(得分:0)

使用应用程序名称空间代替android,它将正常工作。

/etc/nginx/conf.d