菜單(Menu)是一個一排的內容,可以用來定義跟菜單有關的元件要顯示的內容
放在res/menu/底下的xml檔案
元素:
<menu>*
必須是跟元素且包含<item>或<group>
屬性:
xmlns:android(String)*
命名空間必須是"http://schemas.android.com/apk/res/android"
<item>
菜單元件,可以包含<menu>使其成為子菜單,必需為<menu>或<group>的子元素
屬性:
android:id(Resource ID)
為元件獨有ID
android:title(String Resource or String)
元件顯示名稱
android:titleCondensed(String Resource or String)
如果名稱太長則顯示為此名稱
android:icon(Drawable Resource)
元件的圖示
android:onClick(String)
方法名稱,當此元件被按下時呼叫此方法
android:showAsAction(String)
定義元件顯示方式,定義何時及如何操作才能顯示為操作項,可以是以下內容:
值 | 描述 |
ifRoom | 如果菜單元件有足夠空間則放置,否則放在溢出菜單 |
withText | 同時包含android:title之文字,可以以"|"接在其他值後面 |
never | 不顯示於菜單元件上,而是放在溢出菜單 |
always | 永遠使其顯示於菜單上,請避免使用此方法,有可能會因為超出範圍而造成元件重疊 |
collapseActionView | 聲明該元件可折疊 |
android:actionLayout(Layout Resource)
使用的布局方式
android:actionViewClass(String)
類別(Class)名,須包含完整包(Package)名,使用的視圖
android:actionProviderClass(String)
類別(Class)名,須包含完整包(Package)名,使用的ActionProvider
android:alphabeticShortcut(char)
快速鍵
android:numericShortcut(int)
數值快速鍵
android:alphabeticModifiers(String)
使用於快速鍵的組合鍵,可以以"|"分隔表示所有按鍵皆須按下,可以是以下內容:
值 | 描述 |
META | meta鍵 |
CTRL(預設) | ctrl鍵 |
ALT | alt鍵 |
SHIFT | shift鍵 |
SYM | sym鍵 |
FUNCTION | function鍵 |
android:numericModifiers(String)
使用於數值快速鍵的組合鍵,可以以"|"分隔表示所有按鍵皆須按下,可以是android:alphabeticModifiers的接受值
android:checkable(boolean)
是否可以勾選
android:checked(boolean)
是否勾選
android:visible(boolean)
是否可見
android:enabled(boolean)
是否啟用
android:menuCategory(String)
定義元件優先級,可以是以下內容:
值 | 描述 |
container | 元件為容器一部份 |
system | 元件為系統提供 |
secondary | 元件為用戶提供(不常使用) |
alternative | 元件為替代當前顯示數據的替代操作項目 |
android:orderInCategory(int)
元件的重要程度優先級
<group>
包含多個或一個<item>元素,必須是<menu>子元素
屬性:
android:id(Resource ID)
為元件獨有ID android:checkableBehavior(String) 群組勾選行為,可以是以下內容:
值 | 描述 |
none | 不可勾選 |
all | 所有元件皆可勾選(CheckBox) |
single | 所有元件可擇一勾選(RadioButton) |
範例(來自Android官方文件):
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/item1" android:title="@string/item1" android:icon="@drawable/group_item1_icon" app:showAsAction="ifRoom|withText"/> <group android:id="@+id/group"> <item android:id="@+id/group_item1" android:onClick="onGroupItemClick" android:title="@string/group_item1" android:icon="@drawable/group_item1_icon" /> <item android:id="@+id/group_item2" android:onClick="onGroupItemClick" android:title="@string/group_item2" android:icon="@drawable/group_item2_icon" /> </group> <item android:id="@+id/submenu" android:title="@string/submenu_title" app:showAsAction="ifRoom|withText" > <menu> <item android:id="@+id/submenu_item1" android:title="@string/submenu_item1" /> </menu> </item> </menu> |