前往
大廳
主題

【Android筆記】Resource - 菜單(Menu)

LF(小魚) | 2021-03-06 21:36:52 | 巴幣 0 | 人氣 152


一、介紹:
菜單(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:visible(boolean)    是否可見  android:enabled(boolean)    是否啟用  android:menuCategory(String)  android:orderInCategory(int)    同<item>的android:menuCategory及android:orderInCategory

範例(來自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>


創作回應

更多創作