左侧导航栏不遵循android:showAsAction="always"设置

3

我在项目中使用以下菜单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”属性设置为前两个菜单项。这些项目总是放置在软菜单中。查看LeftNavBarLibrary,在OptionsDisplay.java中,我看到对“始终显示”菜单选项的引用,除此之外没有其他内容:

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根本不真正尊重选项菜单,它将显示选项按钮,无论是否需要。
1个回答

2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接