2012-01-19 32 views
3

我用下面的菜單XML在我的項目:LeftNavBar不兌現的android:showAsAction =「總是」

<?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> 

當我在我的應用程序加載了谷歌電視(仿真器或實際器件) 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並沒有真正兌現選項菜單,它會顯示選項按鈕,無論它是否需要。

回答

2

您不應該能夠將操作項目放在LeftNavBar上,它將始終顯示爲普通選項菜單項。