簡體   English   中英

ActionBarSherlock項目沒有出現溢出

[英]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顯示了兩種方法。

  • 編輯現有的AVD

編輯現有的AVD

  • 克隆現有設備配置文件

克隆現有設備配置文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM