API选项菜单未显示在API 2.x.x上

时间:2014-02-27 00:50:40

标签: android android-actionbar android-optionsmenu android-appcompat

我正在使用appcompat v7在我的Android项目上呈现操作栏。这在版本4.x上运行良好,但选项菜单(仅选项菜单)在2.x.x版本上没有显示。有什么问题?

我的list_team.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/action_profile"
    android:title="@string/menu_label_profile"
    android:orderInCategory="100"
    android:showAsAction="never"
    app:showAsAction="never"/>

<item
    android:id="@+id/action_about"
    android:title="@string/menu_label_about"
    android:orderInCategory="100"
    android:showAsAction="always"
    app:showAsAction="always"/>

我的活动

public class MyActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_team);

    getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.list_team, menu);
    return true;
}
}

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

尝试删除这两个属性android:showAsAction=""并仅保留这些app:showAsAction=""

根据Google Documentation

  

如果您的应用使用支持库来兼容低至Android 2.1的版本,则android:namespace中不提供showAsAction属性。

您还可以将* action_about *的orderInCategory更改为1。

答案 1 :(得分:1)

根据此代码,您在覆盖中缺少super.onCreateOptionsMenu()

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.list_team, menu);
    return super.onCreateOptionsMenu(menu);
}

您还应该只使用之前建议的app:showAsAction命名空间。

答案 2 :(得分:1)

使用Android 2.X的设备通常有一个硬件菜单按钮。在这种情况下,溢出菜单图标显示(至少在默认情况下,不确定appcompat中是否存在此切换,尽管ActionBarSherlock中有此切换)。

然而,按下菜单按钮时应该可以访问选项。可能是这样吗?