Android ActionBar compat溢出菜单未显示在sdk 10上

前端之家收集整理的这篇文章主要介绍了Android ActionBar compat溢出菜单未显示在sdk 10上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
您好,感谢您抽出时间阅读此问题.

我正在尝试开发一个将使用ActionBar compat库的Android应用程序.在使用compat库时,我遵循了(据我所知)所有建议.我的清单看起来像这样(只显示相关代码):@H_301_3@

<?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主题.@H_301_3@

我的菜单文件如下所示:@H_301_3@

<?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属性.@H_301_3@

我的活动扩展了ActionBarActivity类.@H_301_3@

问题是:在设备和模拟器上的sdk 10(android 2.3.3)上,溢出菜单(操作栏右侧的三个点)未显示.操作栏上仅显示前两个菜单项.如果我按下设备上的“菜单”按钮,则第三项显示在屏幕的左下角(而不是从右上角显示,因为在具有更新的Android版本的设备上).相同的代码在模拟器上的android sdk 17上运行良好(溢出菜单显示正确的操作).@H_301_3@

我在网上搜索了一个解决方案,但我找不到具有这个特定问题的解决方案.如果我没有在Android 2.3.3设备上安装具有相同操作栏并且显示溢出菜单图标并且在任何最近的Android设备上正常工作的应用程序,我会放弃该问题.这个应用程序的一个例子是todoist app(https://en.todoist.com/android)或handcent app(https://play.google.com/store/apps/details?id=com.handcent.nextsms&hl=en),它们在这个设备上表现都很好.@H_301_3@

我有什么遗漏或是否有使用actionbar compat的推荐方法的替代解决方案?@H_301_3@

感谢您的时间.@H_301_3@

解决方法

@Andrei Google已禁用pre honycomb中appcompat中的菜单溢出按钮.
如果你真的想添加它,请转到android的github存储库并下载
platform_frameworks_support.它包含platform_framework_support_master / v7 / appcompat中appcompat的含义.

在appcompat中创建一个libs文件夹并放入最新的android-support-v4.jar.
现在打开文件v7 / appcompat / src / android / support / v7 / internal / view / ActionBarPolicy.java.
您将看到showOverflowMenuButton对于pre honycomb返回false.请返回true并将此已编辑的appcompat作为库添加到项目中
而且您不需要任何自定义溢出按钮
这对我有用.
对不起我的英语不好@H_301_3@

编辑:来自android / support / v7 / internal / view / ActionBarPolicy.java的实际代码@H_301_3@

public boolean showsOverflowMenuButton() {
    // Only show overflow on HC+ devices
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
}
原文链接:https://www.f2er.com/android/310208.html

猜你在找的Android相关文章