我测试了我的应用程序在Nexus 10(Android 4.2.1)上,并在操作栏上的溢出菜单工作正常。所以当溢出菜单没有出现在Galaxy Note 2上时,我惊呆了。读完Android action bar not showing overflow和How To Control use of OverFlow Menu in ICS之后,我终于意识到在Galaxy note 2上有一个内置的菜单按钮,如果有一个菜单按钮会出现“溢出菜单”按下该按钮。动作栏溢出菜单与硬件永久菜单按钮
对这两个问题的回应表明,不应该使用那里的代码来禁用永久菜单按钮,因为尽管它具有(a)使溢出菜单出现在操作栏中的效果,显然它也( b)也在其他应用程序中强制执行相同的行为。但是,对我来说,操作栏中的溢出菜单远远胜于菜单按钮,对这两个问题的评论意味着其他人也会这么想。
我的问题是,有什么可以使用该代码来禁用onResume()中的永久菜单按钮,并在onPause()中重新启用它?在我选择的应用程序中,使操作栏溢出菜单起作用的方法有多可靠,而所有其他应用程序保持不变?
为了记录,在我看来,Android设计人员(包括软件和硬件)有不知何故共谋造成这个问题,并没有简单的解决方案。一些程序员认为,让所有应用程序在单个设备上以相同方式工作比在不同设备上以相同方式工作的任何特定应用程序更重要。其他程序员认为是相反的。
有超过** 3亿** Android用户的设备与菜单按钮,谁已按菜单按钮进入选项菜单(或溢出的应用程序使用类似ActionBarSherlock)。在某些情况下,他们多年来一直这样做,没有很多问题。 “一些程序员认为,让所有应用程序在单个设备上以相同的方式工作比使用不同设备上的任何特定应用程序以相同方式工作更重要” - 更重要的是,**用户**认为这一点。他们不关心你的应用在他们不使用的设备上的外观。 – CommonsWare
@CommonsWare但有多个设备的用户呢? - 一个没有硬件菜单按钮,一个没有?截图导致混淆呢? - “为什么我看不到3点图标?”。那些不会自动转换到硬件菜单按钮的Android用户的新用户呢? Android的一个常见抱怨是它让新用户感到困惑。关于硬件菜单按钮,我同意。始终显示溢出图标也可以实现一致性(尽管这必须由SDK驱动才能成功)。就我个人而言,我希望在系统设置中看到一个复选框来控制这一点。 –