【问题标题】:Android (3.0) Action Bar dont want to GoAndroid (3.0) 操作栏不想去
【发布时间】:2012-09-07 17:58:26
【问题描述】:

我正在使用 XOOM 并试图隐藏操作栏。所以我按照说明做了以下 在清单文件中:

uses-sdk android:minSdkVersion="11" android:targetSdkVersion="11"

还设置了活动主题。

android:theme="@android:style/Theme.Holo.NoActionBar"

不幸的是,我仍然可以看到操作栏。所以我从清单中删除了全息动作部分并添加了以下代码

ActionBar actionBar = getActionBar(); actionBar.hide();

从 hide() 方法获取空指针异常。所以我知道 getActionBar() 正在返回 null。现在我很好奇我错过了什么?

【问题讨论】:

    标签: android android-actionbar


    【解决方案1】:

    Theme.Holo.NoActionBar 在框架中不公开 - 相反,您可以像这样声明自己的样式:

    <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
            <item name="android:windowActionBar">false</item>
            <item name="android:windowNoTitle">true</item>
    </style>
    

    【讨论】:

    • 我正在尝试为操作栏抑制实现此方法,但是当我尝试将父级设置为 android:Theme.Holo.Light 时出现错误。我也试过@android:Theme.Holo.Light。请帮助我一直在敲击键盘试图弄清楚这一点。
    • 您遇到什么错误?您要使用哪些平台版本?您正在使用哪些设备进行测试?
    • 我还没到测试的地步,我只是想编译。我在清单中的 minSDK 要求是 api 级别 8,但我的目标 api 是 11。实际上我得到了 2 个错误:错误:“错误检索项目的父项:找不到与给定名称匹配的资源'@android:Theme.全息.光'。”和“错误:找不到与给定名称匹配的资源:attr 'android:windowActionBar'。”
    • 我之所以尝试这样做是因为我希望能够在我的应用程序的 web 视图中突出显示文本,而无需让用户选择复制文本。我想防止用户选择文本时出现在 ics 中的操作栏。我正在开发的应用程序一直支持到姜饼,我们希望我正在开发的这个功能可以在旧平台和新平台上工作。
    • 糟糕,出现了一个小语法错误。尝试@android:style/Theme.Holo.Light(已在帖子中修复)。此外,v8 不存在此样式,仅 11 及更高版本,因此请确保仅在存在此样式时使用此样式。
    【解决方案2】:

    我得出了完全相同的结论。如果您无法在屏幕上显示 ActionBar,则很可能是:

    • 窗口没有标题; ActionBar 本质上是一个美化的标题栏,因此没有标题 = 没有 ActionBar,尽管文档中没有提到这一点

    • 您尝试在设置活动中的内容视图之前调用 getActionBar() 方法。在这种情况下,此方法返回 null。同样,文档中没有提到任何地方,如果您尝试将 ActionBar 构造/修改为自定义视图构造函数的一部分,那么您就不走运了。

    更多关于我对 Honeycomb 中 ActionBar 的探索can be found on my blog here

    【讨论】:

      【解决方案3】:

      您可以隐藏操作栏(将显示在屏幕顶部)。如果您的活动是选项卡活动,则在 setcontentview 行之后使用以下行

      getParent().getActionBar().hide(); 
      

      如果是正常活动,则使用

      getActionBar().hide(); 
      

      清单上的设置也对我有用,但仅限于您可以这样设置的特定活动,而不是应用程序。

      android:theme="@android:style/Theme.Holo.NoActionBar"
      

      【讨论】:

        【解决方案4】:

        这对我有帮助.. 像这样编辑 values/styles.xml

        <resources>
        
        <style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar" />
        
        </resources>
        

        【讨论】:

          【解决方案5】:

          Honeycomb 中的操作栏无法隐藏,因为没有可退出应用的物理按钮,因此如果隐藏操作栏,您可能会将用户困在应用中。您能做的最好的事情就是将栏置于“熄灯”模式,在该模式下,您可以用小圆点代替栏中的正常图标。

          查看此链接: Is there a way to hide the system bar in Android 3.0? It's an internal device and I'm managing navigation

          【讨论】:

          • OP指的是action bar(沿着顶部运行),它与底部运行的bar是分开的,包括back/home/etc
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-06
          • 2015-01-17
          • 1970-01-01
          • 2012-04-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多