2013-03-01 37 views
2

我想添加的溢出菜單,從Android提供了我的自定義標題欄上,但它似乎沒有要出現添加溢出菜單的自定義標題欄

這裏是我的活動代碼

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.overflow_menu, menu); 
    return true; 
} 
在我的.xml

 <?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/settings" android:title="Settings" /> 
    <item android:id="@+id/help" android:title="Help" /> 
    </menu> 

自定義標題欄的代碼

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="44dp" 
android:orientation="horizontal" 
android:gravity="center_vertical" 
android:background="#000000" 
> 
<ImageView 
    android:id="@+id/indicator" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="left"    
    android:src="@drawable/indicator" 
    android:layout_marginRight="3dip" 
    /> 

    <ImageView 
    android:id="@+id/indicator" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="left"    
    android:src="@drawable/launcher_blue_tile" 
    android:layout_marginRight="5dip" 
    /> 

    <TextView    
    android:id="@+id/titleHeading" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/app_name" 
    style="@style/titleBarHeading" 

    /> 

Android清單

<activity 
     android:name=".ILaneMainMenuActivity" 
     android:icon="@drawable/indicator" 
     android:label="@string/app_name" 
     android:theme="@style/appTheme"> 

    </activity> 

我已經看過,谷歌提供以及多種在線資源並不能找到一個解決方案的文件中。任何幫助都感激不盡!

+2

什麼是您的「自定義標題欄」,具體是什麼? – CommonsWare 2013-03-01 20:43:20

+0

編輯顯示標題欄以及它實施的清單 – 2013-03-01 20:47:35

+0

我的意思是,我創建了標題欄,它不是Android主題 – 2013-03-01 20:54:30

回答

1

如果您正在使用操作欄,則通過操作欄右側的「...」可供件或通過菜單按鈕爲具有屏幕外MENU按鈕的設備觸發溢出菜單。

如果您沒有使用操作欄 - 這是我的猜測 - 那麼您將需要創建自己的菜單系統。

+0

嚴重嗎?提供可定製的動作/標題欄是Android的殘酷,但如果您這樣做,則可以自行實施整個菜單系統。 – GreenBee 2013-06-15 17:58:41

+0

@GreenBee:你似乎誤解了。正常的菜單系統工作得很好('onCreateOptionsMenu()'等),現在被稱爲溢出。顯示溢出的觸發機制因設備而異(帶有它的設備的菜單按鈕,......沒有設備的可供使用的顯示)。如果你不喜歡溢出,或者沒有顯示動作欄,那麼*你必須自己滾動一些東西,正如我的答案的第二段所述。 – CommonsWare 2013-06-15 18:01:03

+2

謝謝。我的標題欄代碼與上述問題中的標題欄代碼幾乎相似。在我使用自定義標題欄時,它隱藏了默認的Android操作欄,隱藏了菜單(可供件)。 也許我不需要自定義欄。您是否知道在標題/操作欄中顯示圖像的方法(不僅僅是Android默認拾取的方形應用程序圖標)。我只需要在那裏有一個不同的圖像 - 稍寬一點,並有一個自定義欄和一個菜單系統聽起來像一個矯枉過正的。 對不起劫持評論。我的問題很小,所以我想我會在這裏問,而不是一個新的職位。 – GreenBee 2013-06-18 14:18:01

1

你的自定義標題欄應該如何適應ActionBar/Menu排列?根據添加到/menu/overflow_menu.xml文件的項目,MenuInflater#inflate將創建一個ActionBar(後蜂窩/ API 11+)或菜單(API-11之前)。

如果你有更多的項目將適合,溢出菜單(同樣,只在API 11 +)將自動添加。你只有2個項目 - 設置和幫助 - 所以除非它是一個小屏幕,這兩個項目可能會適合,所以不需要溢出。

探索ActionBar的樣式可能更好 - http://developer.android.com/guide/topics/ui/actionbar.html#Style - 其中包括允許自定義圖標&標題,甚至添加自定義視圖/按鈕。如果你想支持早期的Android版本,你可以有一種只適用於Honeycomb設備的樣式,但是你必須手動將該佈局添加到你的活動中。

另一種選擇是ActionBarSherlock,這是強烈推薦和廣泛使用,但我沒有親身經歷。