理解Android的菜单

菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个"Menu"键,由此可见菜单在Android程序中的特殊性。Android SDK提供的菜单有如下几种:

  1. 选项菜单:最常规的菜单,android中把它叫做option menu
  2. 子菜单:android中点击子菜单将弹出悬浮窗口显示子菜单项。子菜单不支持嵌套,即子菜单中不能再包括其他子菜单。
  3. 上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单
  4. 图标菜单:这个比较简单,就是带icon的菜单项,需要注意的是子菜单项、上下文菜单项、扩展菜单项均无法显示图标
  5. 选择菜单(alternative menu):用的比较少,以后单独介绍,本文先跳过(其实是我还没弄明白啦o(≧v≦)o~~)
  6. 扩展菜单:选项菜单最多只能显示6个菜单项,超过6个时,第6个菜单项会被系统替换为一个叫“更多”的子菜单,原来显示不下的菜单项都作为“更多”菜单的子菜单项。如下图:

     

        第6个菜单项自动变为“更多”              点击“更多”显示其他菜单项

Android3.0又引入了一个叫action bar的东西,本文不做讲解,大家自己google。

android.view.Menu接口代表一个菜单,android用它来管理各种菜单项。注意我们一般不自己创建menu,因为每个Activity默认都自带了一个,我们要做的是为它加菜单项和响应菜单项的点击事件。android.view.MenuItem代表每个菜单项,android.view.SubMenu代表子菜单。其三者的关系可以用下图来表示

  

上面说过,每个activity包含一个菜单,一个菜单又能包含多个菜单项和多个子菜单,子菜单其实也是菜单(因为它实现了Menu接口),因此子菜单也可以包含多个菜单项。SubMenu继承了Menu的addSubMenu()方法,但调用时会抛出运行时错误。OnCreateOptionsMenu()和OnOptionsMenuSelected()是activity中提供了两个回调方法,用于创建菜单项和响应菜单项的点击。

更多相关文章

  1. windows 8环境—android studio初步体验(图解)(二)
  2. Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程
  3. 2013.12.03 ——— android onPrepareOptionsMenu onCreateOptio
  4. android 自定义view--点击屏幕生成圆点,点击圆点可以拖动
  5. Android(安卓)长按显示上下文菜单代码
  6. Android(安卓)使用CoordinatorLayout+AppBarLayout+CollapsingTo
  7. Android(安卓)Dialog的使用
  8. android之实现各个组件点击事件处理
  9. RecyclerView 实现item点击水波纹动画

随机推荐

  1. 2. View的工作原理
  2. android aidl 进程间通信需要注意msg的大
  3. Android(安卓)的提示接口-Toast
  4. Android中 Flutter实现自定义的APPbar
  5. 【Android游戏开发十四】深入Animation,
  6. Android(安卓)apk项目中添加ffmpeg编解码
  7. 关于Android(安卓)Dedub Bridge(adb)的使用
  8. Android(安卓)Dagger依赖注入框架浅析
  9. Android应用程序分析——apk的组成
  10. 【Android(安卓)开发】:UI控件之 Gallery