Option Menu
Option Menu,从翻译来看是“选择菜单”的意思,然而某些专业名词就不应该给它翻译,大家简单认为它是在ActionBar上面的一种菜单即可。在Android中,菜单还有其它几种,例如上下文菜单——Context Menu,弹出菜单——PopupMenu。其中Option Menu和Context Menu都是通过Activity中的回调方法来创建的。
相信大家也很清楚Option Menu如何使用。在Activity里的回调方法onCreateOptionsMenu
方法中添加菜单项到Menu中,并返回true
即可:
|
|
然后在方法onOptionsItemSelected
对菜单项的点击事件进行监听:
|
|
Option Menu创建流程
使用hierarchyviewer工具观察带有Option Menu的窗口,可以知道这些菜单的按钮是在Action Bar上面的。
入口
我前面的文章 《Android中窗口添加ActionBar》
中,PhoneWindow创建一套ActionBar的layout添加到当前窗口中。就是在installDecor
方法中,创建了布局后,post
一个任务(menu创建也算比较复杂,post
应该是为了不要拖慢启动速度)
|
|
开始创建
上面post
一个任务来进行菜单的创建,从Runnable
的实现知道是从PhoneWindow
的doInvalidatePanelMenu
方法开始,随即会进入preparePanel
开始菜单的详细创建流程。
|
|
未完待续