mrd*_*mrd 1 android menu deprecated
我引用SDK文档:
"从Android 3.0(API级别11)开始,Android驱动的设备不再需要提供专用的菜单按钮.通过此更改,Android应用程序应远离对传统的6项菜单面板的依赖,而是提供操作栏显示常见的用户操作."
更多:"如果您正在开发Android 2.3或更低版本,用户可以通过按菜单按钮显示选项菜单面板.在Android 3.0及更高版本中,选项菜单中的项目由操作栏显示为组合 - 屏幕操作项和溢出选项.从Android 3.0开始,不推荐使用"菜单"按钮(某些设备没有),因此您应该转向使用操作栏来提供对操作和其他选项的访问权限."
因此,如果我理解正确,在具有Android 3.0或更高版本(具有菜单按钮)的设备上,被删除的代码仍然有效,而在使用Android 3.0或更高版本且没有菜单按钮的设备上,被删除的代码将无效.
出现5个问题:
可以通过Android兼容性库处理这些兼容性问题吗?如果有,怎么样?
将目标API设置为11或更高(建议您将其设置为最新的可用版本:因此,将目标API设置为15).然后在您的应用程序中启用ActionBar.以前通过菜单键显示的内容现在显示在ActionBar的溢出菜单中,或者如果您将每个"showIfRoom"设置为true,则显示为条形图上的各个操作.
如果不是,是否有人拥有Android 3及更高版本且没有菜单按钮的设备列表?
试图编写特殊情况是错误的方法.在带有菜单按钮的设备上,它将与菜单按钮一起使用.在没有菜单按钮的那些按钮上,会有溢出菜单.在Android开发者博客上有关于此的博客文章.
目前这些设备的市场份额有多高?
虽小但却在增长.
指定最大SDK将排除所有设备,无论它们是否具有菜单.是否有更好的方法,以确保应用程序仅安装在兼容设备上?
是的:我描述的方法将处理这两种情况,并且它将适用于所有设备:)没有理由使用maxSdk.
编辑:解决评论中的问题:
那么,如果我的目标是8,那么11的设备将无法正确处理菜单按钮?
如果将目标设置为小于11,则没有菜单键的设备将在其他软按钮旁边显示"遗留"菜单按钮,如下所示:http: //android-developers.blogspot.com/2012/01/say -goodbye到菜单button.html
另一方面,如果我将目标设置为11,如果我使用> 8的功能,eclipse将不会警告我?
如果您将目标设置为11并且min设置为8,那么Eclipse将不会警告您是否使用了9个以上的功能 - 您需要为此测试您的应用程序.简单的方法:将目标SDK暂时移回8,查看编译器对你大喊大叫的位置,确保这些代码路径永远不会遇到无法处理它们的设备.
它会对Google Play Market上的分发产生什么影响?
只有好的.如果您设置了最大SDK,那么随着时间的推移,您的应用程序将与越来越少的设备兼容.拥有8的最小版本(而不是完全废弃后向兼容性)意味着您的应用程序可以安装在Froyo和Gingerbread设备上,而不仅仅是Honeycomb和up.
| 归档时间: |
|
| 查看次数: |
1896 次 |
| 最近记录: |