【发布时间】:2013-12-01 10:55:37
【问题描述】:
您好,感谢您花时间阅读此问题。
我正在尝试开发一个将使用 ActionBar 兼容库的 android 应用程序。在使用 compat 库时,我已遵循(据我所知)所有建议。我的清单看起来像这样(仅显示相关代码):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light" >
</application>
</manifest>
如您所见,我的目标是 sdk 8+。我已按照推荐使用 Theme.AppCompat 主题。
我的菜单文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cds="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_map"
android:icon="@drawable/ic_action_map"
android:title="@string/action_map"
cds:showAsAction="ifRoom"/>
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
cds:showAsAction="ifRoom"/>
<item
android:id="@+id/action_mail"
android:icon="@drawable/ic_action_mail"
android:title="@string/action_mail"
cds:showAsAction="ifRoom"/>
</menu>
我正在为 showAsAction 属性使用我自己的命名空间。
我的活动扩展了 ActionBarActivity 类。
问题是这样的:在 sdk 10 (android 2.3.3) 上,无论是在设备上还是在模拟器上,都没有显示溢出菜单(操作栏右侧的三个点)。只有前 2 个菜单项显示在操作栏上。如果我按下设备上的“菜单”按钮,那么第三个项目会从屏幕的左下角显示(而不是在具有更新的 android 版本的设备上从右上角显示)。相同的代码在模拟器上的 android sdk 17 上运行良好(溢出菜单显示为正确的操作)。
我已在网上搜索解决方案,但找不到解决此特定问题的解决方案。如果我没有在 android 2.3.3 设备上安装具有相同操作栏并且显示溢出菜单图标并且像在任何最近的 android 设备上一样正常工作的应用程序,我会放弃这个问题。此应用程序的一个示例是 todoist 应用程序 (https://en.todoist.com/android) 或 handcent 应用程序 (https://play.google.com/store/apps/details?id=com.handcent.nextsms&hl=en),它们都在此设备上运行良好。
有什么我遗漏的,还是有替代解决方案来替代使用操作栏兼容的推荐方式?
感谢您的宝贵时间。
【问题讨论】:
标签: android android-sdk-2.3 android-actionbar-compat