我在菜单项上设置了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>
但是即使使用了所有这些设置,这就是操作栏的显示方式,根本不显示我的菜单项(但它在那里,因为它响应了点击,但没有显示):
答案 0 :(得分:210)
尝试使用app:actionLayout="@layout/check"
代替android:actionLayout="@layout/check"
。
如果您正在使用ActionbarSherlock
或AppCompat
,android:
命名空间将不适用于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