[英]ActionBarSherlock items not appearing in overflow
我正在嘗試用ABS來恢復我的應用程序的ICS外觀和感覺。 獲取ActionBar本身很好,很簡單,但是添加菜單項卻沒有。
我的代碼看起來像:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
正在使用所有適當的進口。
我的menu.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/backup" android:title="@string/backupLabel"/>
<item android:id="@+id/restore" android:title="@string/restoreLabel"/>
</menu>
ActionBar顯示,但菜單表現為2.1菜單 - 僅從菜單按鈕激活,沒有溢出可用。 在ICS仿真器上也是如此 - 我必須使用菜單按鈕激活菜單。
如果我添加android:showAsAction =“ifRoom”,那么這些項目將顯示為操作項目 - 但不會出現溢出,這是我希望它們始終存在的位置。
這一切都有意義嗎?
我錯過了什么?
只需使用此代碼boath菜單就在ActionBar上:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/backup"
android:showAsAction="ifRoom"
android:title="backupLabel"/>
<item
android:id="@+id/restore"
android:showAsAction="ifRoom"
android:title="restoreLabel"/>
</menu>
它看起來像:
因為如果你使用
android:showAsAction="ifRoom" : Only place this item in the Action Bar if there is room for it.
和
android:showAsAction="Never" : Never place this item in the Action Bar.
如果您使用喜歡:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/backup"
android:showAsAction="ifRoom"
android:title="backupLabel"/>
<item
android:id="@+id/restore"
android:title="restoreLabel"/>
</menu>
然后看看: 當你按下菜單按鈕時,一個在ActionBar上,第二個是打開的。
注意:它在<3.0 Android OS中工作正常,所以不用擔心。 但是如果你有多個菜單項(超過3個)與android:showAsAction="ifRoom"
那么它表明你依賴於設備屏幕大小 。
在Protrait:
在景觀:
完成上述所有操作后,我將在<3.0 Android操作系統中使用以下方法:
碼:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/file"
android:showAsAction="ifRoom"
android:title="file">
<!-- "file" submenu -->
<menu>
<item
android:id="@+id/create_new"
android:title="create_new"/>
<item
android:id="@+id/open"
android:title="open"/>
</menu>
</item>
</menu>
ABS 4.1.2中已刪除ForceOverflow
,創建者發現它應該永遠不會進入(參見更改日志說明)。 我很自信你看到了預期的行為; 任何帶有運行ICS +的菜單按鈕的設備(例如我的Nexus S)都不會顯示溢出菜單,因為有一個專用的硬件鍵 - “菜單”按鈕。
使用模擬器配置從模擬設備中刪除菜單按鈕,Android將知道添加溢出菜單。
您可能正在使用啟用了硬件鍵盤的仿真器,而不是軟件。 要在溢出菜單中查看操作,請使用帶有軟水控件的仿真器。 screeenshots顯示了兩種方法。
。
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.