【问题标题】:Action Bar location issue操作栏位置问题
【发布时间】:2012-04-02 03:40:18
【问题描述】:

我已将操作栏添加到我的应用程序中。

出于某种奇怪的原因,在我的 Galaxy Nexus 上,溢出菜单出现在屏幕底部,而在股票应用程序(地图、Gmail、Google Play、日历等)中,溢出菜单出现在屏幕顶部.

是否有强制它与应用标题一起出现在屏幕顶部的方法?

注意:顶部的灰色条包含我的应用程序的标题,但我已将其删除以用于此屏幕截图。

【问题讨论】:

  • 这不会有帮助,但我建议使用 ActionBarSherlock.com 而不是本机操作栏,以便更好地向后兼容非 ICS 应用程序。
  • 感谢您的建议。我还没有考虑与非 ICS 设备的向后兼容性。

标签: android android-layout android-4.0-ice-cream-sandwich android-actionbar


【解决方案1】:

正如 cmets 的人所说,如果您打算将您的应用程序公开,您最终将不得不默许并使用 ABS,即使这不是一个完美的解决方案(尽管它非常接近)。但是,对于 ActionBar 更直接的问题 - 尝试将这些行添加到 XML 中的根菜单:

android:showAsAction="always"

确定

uiOptions="splitActionBarWhenNarrow"

不会出现在您的 Android 清单中的任何位置。你也可以测试看看是否

setDisplayShowHomeEnabled(true/false) and setDisplayShowTitleEnabled(true/false) 

间接影响菜单的位置。

编辑~另外,您是否在操作栏中使用了选项卡或其他项目行中的任何内容,这些项目没有显示但实际上出现在顶部栏上?

EDIT2~ 这是我的选项菜单代码:

public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
    case R.id.demographics:
        Intent intent = new Intent();
        intent.setClass(this, demoPanel.class);

        startActivity(intent);
        break;
    case R.id.settings:
        // another startActivity, this is for item with id "menu_item2"
        break;
    default:
        return super.onOptionsItemSelected(item);
    }

    return true;
}

【讨论】:

  • 顶部栏只有应用程序的名称。通常我会隐藏顶部栏,但我必须显示它才能使操作栏正常工作。
  • @mob1lejunkie 是的,我知道你必须展示它。当我的应用程序处于早期阶段时,我的应用程序中发生了类似的事情,但我不记得导致菜单按钮出现在第二行而不是底部的情况。我刚刚测试了我的应用程序,splitwhennarrow 导致我的菜单图标完全消失 - 因为顶行充满了标签。我将编辑我的评论,以便您查看我的选项菜单代码的样子,也许它会有所帮助。
  • 原来我不知何故有 uiOptions="splitActionBarWhenNarrow" 这就是为什么溢出菜单显示在底部。
猜你喜欢
  • 2013-05-03
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多