近期开发中有须要Menu键,结果发现了一个非常尴尬的问题。我的測试机上有Menu键。可是測试平板上没有,队友的測试机上竟然也没有Menu键。这着实有些尴尬...
上网谷歌之后才发现问题所在:
仅仅有在android 4.0 之前的机器中,menu 键是才作为硬件存在的,之后的机器有的有。有的就没有了,比方三星的S3,Note2等等都是有这个按键的。可是很多其它的手机取消了这个按键。所以假设project中实用到这个按键,那就必须调低最低版本号, 比方android 2.2 的project,跑到了 4.0 的机器上面(4.0已经取消了 硬件menu)。那么就会造成menu 键的缺失,所以google 在对支持 android 4.0 曾经版本号的项目都会默认加上虚拟menu键。
所以最关键的点在 清单文件里的:<uses-sdk android:minSdkVersion="14" />,假设你支持 4.0 以
前的版本号,就会给你加上虚拟menu了。
此时在每一个activity 的最以下。多了一个虚拟的menu键,每次点击屏幕它都会优先的出现。 在systemUI中。它是第一个接
受到点击的事件。
差异,你要在程序中自己处理这样的硬件menu取消的问题。他就不会强制性给你加上虚拟menu了。