3

我正在尝试在 ActionBarSherlock 的帮助下在 Android 2.3 应用程序中实现选项菜单。但它不显示。这是选项菜单的简单 XML 布局文件“breadcrumb_bar_menu”:

<?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:id="@+id/inbox"
       android:icon="@drawable/topbar_btn_inbox"      
       android:title= "@string/about" />    

 <item android:id="@+id/sent"
       android:icon="@drawable/topbar_sent"      
       android:title="@string/about" />    
    </menu>

这是我从 SherlockActivity 继承的活动:

    public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.breadcrumb_bar_menu, menu);
    return true;
}

但是我在活动中看不到选项菜单。我做错了什么?

4

5 回答 5

3

android:showAsAction="ifRoom"在您的菜单 xml 项的属性中包含。

 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/inbox"
       android:showAsAction="ifRoom"
       android:icon="@drawable/topbar_btn_inbox"      
       android:title= "@string/about" />    

    <item android:id="@+id/sent"
       android:showAsAction="ifRoom"
       android:icon="@drawable/topbar_sent"      
       android:title="@string/about" />    
 </menu>
于 2013-03-15T02:19:03.737 回答
1
public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.actionoption, menu);
    return true;
}
于 2014-02-09T20:14:10.217 回答
0

您必须为设备设置导航模式。如果是,您的设备是否有硬菜单键,那么您将看不到三个点菜单选项。

于 2013-03-14T18:20:33.427 回答
0

您需要告诉系统您将使用菜单:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}
于 2013-03-21T23:14:25.240 回答
0

为了使用 Actionbarsherlock 使 optionmenu 像在其他 API > 2.3.3 上一样工作,我做了以下操作:

菜单文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/navigateMenu" 
android:icon="@drawable/icon"
android:title="Menu"
android:orderInCategory:"9"
android:showAsAction="always"
android:titleCondensed="Menu">
<menu>
<item android:id="@+id/id1"
android:icon="@drawable/option1"
android:title="option1" />
<item android:id="@+id/id2"
android:icon="@drawable/option2"
android:title="option2" />
<item android:id="@+id/id3"
android:icon="@drawable/option3"
android:title="option3" />
</menu>
</item>
</menu>

在您的活动代码中:获取父 MenuItem 的引用并使用 SHOW_AS_ACTION_ALWAYS 属性将其附加到操作栏参见相同的代码:

活动文件:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.sample_menu, menu);

//To make optionmenu visible on Actionbar for 2.3.3

menu.findItem(R.id.navigateMenu).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
        return true;
    }
于 2015-11-21T17:52:52.870 回答