openOptionsMenu 不适用于 minSdkVersion 16 的棒棒糖平板电脑
openOptionsMenu doesn't work on Lollipop Tablet with minSdkVersion 16
我搜索了 Stack Overflow,但没有 link 完全相同的问题。
我正在开发的应用是旧版应用。
此应用程序必须在点击图像图标时打开选项菜单。
该应用程序不使用操作栏。
在我将它的 minSdkVersion 提高到 16 form 8 之前,此功能在所有设备上都运行良好。
由于我将 minSdkVersion 提高到 16,选项菜单在 Lollipop 平板电脑上无法打开。不过它在 Lollipop 智能手机上运行良好。
这里有什么问题?有什么解决方法吗?
始终 为您的项目定义 targetSdkVersion
。这告诉 Android "hey, I was thinking of this API level when I wrote this code"。 Android 将使用它来实现向前兼容性的选择性位,更改较新设备上的运行时行为,使其更接近您当时的想法。
平板电脑从未真正使用过选项菜单;从 Android 3.0 开始,以前的选项菜单被迁移到操作栏。在没有 targetSdkVersion
的情况下,显然 Android 会将 minSdkVersion
也视为 targetSdkVersion
。并且,minSdkVersion
/targetSdkVersion
为 16,您将坚定地进入动作条世界。
将您的 targetSdkVersion
设置为 8 应该会恢复您的 minSdkVersion
跳转到 16 时应用的任何更改。
但是,最终某些事情会迫使您的手将 targetSdkVersion
提高到更高的值。不要假设您将能够永远坚持 targetSdkVersion
8。或者:
- 将您的用户迁移到操作栏,或者
- 实现您自己的类似选项菜单,或者
- 计划用现代实现替换整个应用程序,或者
- 计划放弃该应用程序
我搜索了 Stack Overflow,但没有 link 完全相同的问题。
我正在开发的应用是旧版应用。 此应用程序必须在点击图像图标时打开选项菜单。 该应用程序不使用操作栏。 在我将它的 minSdkVersion 提高到 16 form 8 之前,此功能在所有设备上都运行良好。 由于我将 minSdkVersion 提高到 16,选项菜单在 Lollipop 平板电脑上无法打开。不过它在 Lollipop 智能手机上运行良好。
这里有什么问题?有什么解决方法吗?
始终 为您的项目定义 targetSdkVersion
。这告诉 Android "hey, I was thinking of this API level when I wrote this code"。 Android 将使用它来实现向前兼容性的选择性位,更改较新设备上的运行时行为,使其更接近您当时的想法。
平板电脑从未真正使用过选项菜单;从 Android 3.0 开始,以前的选项菜单被迁移到操作栏。在没有 targetSdkVersion
的情况下,显然 Android 会将 minSdkVersion
也视为 targetSdkVersion
。并且,minSdkVersion
/targetSdkVersion
为 16,您将坚定地进入动作条世界。
将您的 targetSdkVersion
设置为 8 应该会恢复您的 minSdkVersion
跳转到 16 时应用的任何更改。
但是,最终某些事情会迫使您的手将 targetSdkVersion
提高到更高的值。不要假设您将能够永远坚持 targetSdkVersion
8。或者:
- 将您的用户迁移到操作栏,或者
- 实现您自己的类似选项菜单,或者
- 计划用现代实现替换整个应用程序,或者
- 计划放弃该应用程序