Android:Android 4.3,Samsung Note 2中未显示ActionBar操作溢出

时间:2015-02-15 08:44:01

标签: android android-actionbar

我们切换回显示Actionbar

但[3]动作溢出菜单未显示(在Android 4.3,Samsung Note 2中)。

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="19" />

活动类extends android.app.Activity(不是ActionBarActivity)

我玩甚至将所有菜单项设置为android:showAsAction="never"(在这种情况下,ActionBar上没有任何操作)

文档

使用appcompat支持库时的类似问题

编辑common_actions.xml的所有操作均为android:showAsAction="never"

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_home"
        android:icon="@drawable/ic_default_image"
        android:showAsAction="never"
        android:title="@string/recommend"
        />
    <item
        android:id="@+id/action_downloadmanager"
        android:icon="@drawable/icon_personal_light_download_manage"
        android:showAsAction="never"
        android:title="@string/downloadmanage"
        />
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:showAsAction="never"
        android:title="@string/search"
        />
    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/ic_action_settings"
        android:showAsAction="never"
        android:title="@string/setting"
        />

</menu>

3 个答案:

答案 0 :(得分:3)

这是一个三星的事情,在我看来实际上是一个非常愚蠢的UI决定。在Touchwiz中,对于所有版本,不支持ActionBar中的AFAIK溢出,而是必须点击左下角按钮,弹出Gingerbread-esque菜单。

enter image description here

使用AppCompat中的工具栏虽然你可以覆盖这个行为并且它在ActionBar中显示正常溢出,但是我写了一篇关于从ActionBar移动到工具栏的简短帖子,你可以查看here,其中包含指向更多内容的链接资源。

答案 1 :(得分:0)

进一步观察我发现了一个类似的问题https://stackoverflow.com/questions/23906985/action-overflow-button-not-shown(和here too

实际上导致了Android action bar not showing overflow

中的几个选项

我去了

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    makeOverflowMenu();
}

private void makeOverflowMenu() {
    //devices with hardware menu button don't show action overflow menu
    try {
        ViewConfiguration config = ViewConfiguration.get(this);
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
        if (menuKeyField != null) {
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
        }
    } catch (Exception e) {
        Log.d(TAG, e.getLocalizedMessage());
    }
}

Samsung Note 2上的硬件菜单按钮就像按下了ActionBar操作溢出菜单一样。

答案 2 :(得分:0)

这是正确的行为。

如果你有一个物理菜单按钮(三星有它),Android将自动隐藏三个点。 如果你不这样做,它会显示出来。