【问题标题】:Hide&show action bar on pre-honeycomb devices在预蜂窝设备上隐藏和显示操作栏
【发布时间】:2012-04-29 07:32:55
【问题描述】:

操作栏甚至可以在预蜂窝设备上显示,如通过 actionbar-compat sample 所示。

我希望能够按需隐藏和显示操作栏(以编程方式)。我该怎么做?

问题是使用支持库获取操作栏返回 null。我也尝试使用它的 id 找到它并将可见性设置为消失,但它只是显示了一个空白。

【问题讨论】:

  • 您如何尝试获取操作栏?通过使用getActionBar()?
  • Android 支持包与“旧设备上的操作栏”无关。
  • 所以这不可能吗?有什么解决办法吗?
  • @CommonsWare 更新了问题。不过,对于 pre-honeycomb 设备,还有一个操作栏替代品,我无法找到一种方法来按需隐藏和显示它。
  • @Abhishek Chanda:我有,它不可用,因为它不可用(API 11+,我使用姜饼,即 API10)。在图书馆找不到等价物。

标签: android compatibility android-3.0-honeycomb android-actionbar android-2.3-gingerbread


【解决方案1】:

最后我使用了 actionBarSherlock。

它有更多的功能,这个请求的功能就是其中之一。也许新的支持库可以使用此功能,但我已经转向此解决方案。

【讨论】:

    【解决方案2】:

    好的,我有一个解决方法,但它不适用于开头,这意味着在很短的时间内,操作栏将显示在开头。

    这是我创建的用于隐藏操作栏的代码(用于蜂窝前版本),我通过查看 this post 想到了这一点:

    ViewGroup decorView = (ViewGroup) this.getWindow().getDecorView();
    ViewGroup root = (ViewGroup) decorView.getChildAt(0);
    View titleContainer = root.getChildAt(0);
    titleContainer.setVisibility(View.GONE);
    

    如果有人知道如何使动作栏隐藏在开头并选择何时显示,请告诉我。

    编辑:顺便说一句,如果有人希望通过清单使用主题并使用 actionBarSherlock,您可以使用 "Theme.Sherlock.Light.NoActionBar" 或 "Theme.Sherlock.NoActionBar" ,如果您希望隐藏和显示代码,只需使用 getSupportActionBar().hide() 和 getSupportActionBar().show()。

    【讨论】:

      【解决方案3】:

      试试这个,通过在 xml 中为您的活动设置以下属性来隐藏 xml 中的操作栏。 `

      <activity
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
      

      如果没有,希望对您有所帮助,然后添加评论,如果我的回答有任何问题,请纠正我。

      【讨论】:

      • 这是错误的,因为它也隐藏了通知栏。您需要创建一个主题以避免这种情况。
      • hmm .. 是的,我注意到它隐藏了通知栏,我会用你的方式。谢谢纠正。
      • 还有一个问题是关于以编程方式进行。无论如何,我已经更新了我的答案以获得清单的解决方案,即使它根本不是以编程方式......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多