【问题标题】:Android theme, fullscreen and the action barAndroid 主题、全屏和操作栏
【发布时间】:2012-09-28 21:26:42
【问题描述】:

我在使用带有操作栏的设备时遇到了一些问题。在手机上运行时,我想全屏显示,没有标题栏和状态栏。在平板电脑上,我想显示操作栏但仍然没有标题栏。明斯克是 7 岁!当您切换全屏时,setTheme 方法不起作用,所以我不能有两个主题。有没有办法在全屏模式下显示操作栏?支持库不支持操作栏。

我首先要这样做的唯一原因是因为他们没有充分的理由通过将菜单键移动到操作栏来破坏向后兼容性。根据文档,简单的解决方案是将 android:showAsAction="ifRoom" 添加到菜单项中。但这绝对没有任何作用。

我还测试了我在谷歌上找到的许多可以切换全屏的解决方案。它们都不能在我的任何设备上运行,所以如果你自己没有使用过,请不要指向你读过的东西。

编辑:我解决了这个问题。问题似乎是您必须指定一个 Holo 主题才能恢复操作栏。否则不会显示。我在我的主要活动中添加了这个。

@Override
public void setTheme(int resid) {
    if(isTablet(this))
    {
        super.setTheme(android.R.style.Theme_Holo);
        return;
    }
    super.setTheme(resid);
}

【问题讨论】:

    标签: android android-actionbar


    【解决方案1】:

    在平板电脑上我想显示操作栏但仍然没有标题栏

    操作栏取代了标题栏。不存在具有操作栏标题栏的活动的概念。

    有没有办法在全屏模式下显示操作栏?

    AFAIK,不,根据定义。

    支持库不支持操作栏。

    ActionBarSherlock 为 API 级别 7 及更高级别提供操作栏的反向移植。

    根据文档,解决此问题的简单方法是将 android:showAsAction="ifRoom" 添加到菜单项中。但这绝对没有任何作用。

    如果您没有操作栏,它肯定“什么都不做”。如果您想要全屏体验,则需要自行更换菜单。恕我直言,大多数全屏应用已经这样做了(例如,带有游戏风格“菜单”的游戏)。

    【讨论】:

    • 标题栏没有被操作栏替换。我可以让标题栏显示。您将它与我认为的状态栏混淆了。我不会添加任何第三方的东西。我宁愿放弃对平板电脑的支持。还有你的最后一句话。我实际上认为它会出现在系统栏中,因为文档的简短版本表明您只需将属性添加到菜单项即可添加平板电脑支持。当我将主题设置为显示它(在清单中)时,它已经在操作栏中工作了。那么解决方案是什么?去第三方还是放弃?
    • @Fdk2000:“标题栏没有被操作栏取代”——是的,在 API 级别 11 及更高级别上是这样。 “我实际上认为它会出现在系统栏中,因为文档的简短版本表明您只需将属性添加到菜单项即可添加平板电脑支持” - 前提是您有一个操作栏。菜单出现在系统栏中的唯一方式是您的 targetSdkVersion 小于 11。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多