メニュー項目に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>
しかし、このセットアップのすべてでさえ、これはアクションバーがどのように表示されるかであり、私のメニューアイテムはまったく表示されません(しかし、クリックに反応するが表示されないため、そこにあります):
app:actionLayout="@layout/check"
の代わりに Android:actionLayout="@layout/check"
。
ActionbarSherlock
またはAppCompat
を使用している場合、Android:
名前空間はMenuItem
sでは機能しません。これは、これらのライブラリがフレームワークの以前のバージョンには存在しなかったため、Android APIを模倣するカスタム属性を使用するためです。
appcompactを使用すると、メニュー項目は次のようになります
<item Android:id="@+id/cart"
app:actionLayout="@layout/actionbar_cart"
Android:title="@string/action_cart"
app:showAsAction="always"
/>
ベン・ハリスからの答えは絶対に正しいです。ただし、次のような属性を使用する場合のような場合があります。
app:showAsAction="ifRoom|collapseActionView"
searchView(私の場合)で使用すると、レイアウトビューが表示されないため、頭痛の種になりました。 collapseActionViewはappcombatのアクションビューではサポートされていないようです。だからあなたのことをやっている間にこれも考慮してください。
Androidの代わりにアプリの名前空間を使用すると、正常に機能します。
<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"
app:actionLayout="@layout/check"
app:showAsAction="always" />
</menu>