AndroidでMenuItems(オプションメニューのハードウェアキーまたはアクションバーのいずれか-とにかく同じです)を異なるスタイルで使用することは可能ですか?
1つにセレクターを適用し、もう1つに別のセレクターを適用したいと思います。
オンラインで検索したところ、テーマを変更したり、独自のスタイルで属性を上書きしたりできることがわかりましたが、これはすべてのMenuItemに適用されます。
android:background
それでもXMLでプロパティを設定できますか?
AndroidでMenuItems(オプションメニューのハードウェアキーまたはアクションバーのいずれか-とにかく同じです)を異なるスタイルで使用することは可能ですか?
1つにセレクターを適用し、もう1つに別のセレクターを適用したいと思います。
オンラインで検索したところ、テーマを変更したり、独自のスタイルで属性を上書きしたりできることがわかりましたが、これはすべてのMenuItemに適用されます。
android:background
それでもXMLでプロパティを設定できますか?
のアイテムが可能ですActionBar
。別のセレクターを使用するアイテムをカスタムアクションビューとして定義する必要があります。
<item
android:id="@+id/menu_custom"
android:actionLayout="@layout/action_view"
android:showAsAction="always"/>
によって参照されるレイアウトにandroid:actionLayout
はImageView
、セレクターを割り当て、クリックおよびフォーカス可能にするものがあります。
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/action_view_background"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:minWidth="56dip"
android:paddingBottom="8dip"
android:paddingTop="8dip"
android:src="@drawable/ic_launcher" />
クリックイベントはによって処理されませんonOptionsItemSelected
。を添付する必要がありOnClickListener
ますonCreateOptionsMenu
。
menu.findItem(R.id.menu_custom).getActionView().setOnClickListener(l);
この答えを引用する
http://developer.android.com/guide/topics/ui/menus.html#checkableの公式ドキュメントによると
注:(オプションメニューからの)アイコンメニューのメニュー項目は、チェックボックスまたはラジオボタンを表示できません。アイコンメニューの項目をチェック可能にする場合は、状態が変化するたびにアイコンやテキストを入れ替えて、チェック状態を手動で指定する必要があります。
同じオブジェクトMenuItemであるため、同じことがアクションバーアイテムにも適用されます。