我在项目中使用以下菜单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根本没有真正尊重选项菜单,无论是否需要,它都会显示选项按钮。
答案 0 :(得分:2)
您应该无法在LeftNavBar上放置操作项,它将始终显示为普通的Option菜单项。