我在项目中使用以下菜单XML:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/user_cp"
        android:icon="@drawable/gear"
        android:showAsAction="always"
        android:title="@string/usercp"
        />
    <item
        android:id="@+id/pm"
        android:icon="@drawable/sym_action_email"
        android:showAsAction="always"
        android:title="@string/private_message"
        />
    <item
        android:id="@+id/refresh"
        android:icon="@drawable/ic_menu_refresh"
        android:title="@string/refresh"
        />
    <item
        android:id="@+id/settings"
        android:icon="@drawable/ic_menu_preferences"
        android:title="@string/settings"
        />
    <item
        android:id="@+id/logout"
        android:icon="@drawable/ic_menu_logout"
        android:title="@string/logout"
        />
</menu>

当我在Google TV(模拟器或实际设备)上加载应用程序时,LeftNavBarLibrary(http://code.google.com/p/googletv-android-samples/source/browse/LeftNavBarLibrary)会忽略android:showAsAction =“always为前两个菜单项设置的属性。这些项目始终位于软菜单内。在OptionsDisplay.java中的LeftNavBarLibrary中,我看到了对“始终显示”菜单选项的引用,除此之外,什么都没有:
private void refreshExpandedState() {
    // Menu icon.
    setOptionExpanded(mView.getChildAt(1), mExpanded);
    // "Show always" options.
    ViewGroup optionsContainer = getOptionsContainer();
    for (int i = 0; i < optionsContainer.getChildCount(); ++i) {
        setOptionExpanded(optionsContainer.getChildAt(i), mExpanded);
    }
}

此功能是否可与LeftNavBarLibrary一起使用,还是我自己坚持实现它?对于此应用程序而言,在某些情况下,我会在ActionBar上使用操作项,因为按钮是实际操作,而不是可以用选项卡代替的操作,这一点至关重要。

编辑:看起来LeftNavBarLibrary根本不真正遵守选项菜单,无论是否需要它都会显示选项按钮。

最佳答案

您不应将操作项放置在LeftNavBar上,它始终将显示为普通的Option菜单项。

08-05 04:23