Options Menu的android3.0以上和以下版本显示刷新原理,刷新适配

一 显示区别:

2.3.x及以下版本,需要按菜单键显示菜单,当菜单打开时,第一个可见的部分是图标菜单,最多可容纳6个菜单项。如果你的菜单包括Android的地方超过6项,第六项,其余将被归到”More”菜单下;3.0以上版本,逐渐抛弃了2.3.x及以下版本这种menu这种风格,主推Action Bar,且当菜单打开时,会显示所有菜单项。

二Menu创建、运行方面的区别

1>      在2.3.x及以下版本,当菜单打开时,系统调用:onCreateOptionMenu()方法创建menu实例。3.0以上的版本,应用启动时调用:onCreateOptionMenu()方法来创建menu实例。

2>      在2.3.x及以下版本中,当menu实例创建后,每次按菜单键,都会调用:onPrepareOptionsMenu()方法。3.0及以上版本,并不是每次按菜单键onPrepareOptionsMenu()方法都会调用;另外3.0及以上版本,新增了:invalidateOptionsMenu()方法,需要手动调用:invalidateOptionsMenu()方法,这时系统会去依次调用:onCreateOPtionMenu,onPrepareOptionMenu()方法,且此时再去按菜单键,onPrepareOptionMenu()方法就不再被调用了。

如果使用了V7support包要在低版本和高版本同时刷新menu

 supportInvalidateOptionsMenu();

原文地址:https://www.cnblogs.com/mingfeng002/p/4021784.html