【问题标题】:Get options menu to show in system bar获取选项菜单以显示在系统栏中
【发布时间】:2011-03-02 02:27:27
【问题描述】:

我正在尝试让我的选项菜单显示在新的 Android 3.0 系统栏中。我可以让这种行为与 Notepadv3 教程一起使用。但是,在实现几乎相同的功能时,菜单显示在上面的操作栏中,而不是系统栏中。有什么想法吗?

附件是我的应用程序的相应代码:

public class AACUser extends Activity {


private static final int ADMIN_ID = Menu.FIRST;

public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    menu.add(0, ADMIN_ID, 0, R.string.menu_admin);
    return true;
}


@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
    switch(item.getItemId()) {
        case ADMIN_ID:
            enterAdminMode();
            return true;
        default:
            return super.onMenuItemSelected(featureId, item);
    }
}


}

我也尝试过实现creating menu documentation 推荐的这些菜单功能:

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
        case R.id.menu_adminMode:
            enterAdminMode();
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

但没有区别:它仍然在操作栏的溢出中显示选项,而不是系统栏。

【问题讨论】:

  • 我按照“创建菜单”文档中的说明进行了尝试,但无济于事。
  • 将 targetSdkVersion 从 11 减少到 10 解决了这个问题。但是,我只想将此应用程序定位到 Honeycomb,因此我仍然没有永久的解决方案。

标签: java android menu


【解决方案1】:

从 Android 3.0 开始,不需要选项菜单(如果不推荐)。如果您以 API 11 (Android 3.0) 或更高版本为目标,则假定您的应用可以在没有选项菜单的情况下运行,因此系统栏不会显示选项菜单。系统栏中的选项菜单仅用于向后兼容旧应用程序。新应用程序应该具有访问选项的另一种方式,例如操作栏提供的选项。

【讨论】:

  • 嗯..我明白了。我只是喜欢能够使用系统栏中的选项菜单按钮全屏运行。无论如何要手动实现此功能?
  • 如果您的目标是 API 11 或更高版本,则不会。
【解决方案2】:

我认为系统栏中的菜单按钮仅用于向后兼容。所以如果你想为 Honeycomb 设计你的应用程序,那么菜单应该并且将会在操作栏中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 2014-06-29
    • 2013-12-08
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    相关资源
    最近更新 更多