覆盖动作栏,带有半透明状态栏

时间:2013-11-05 21:13:36

标签: android android-actionbar android-4.4-kitkat

我正在努力达到这里显示的效果:尼克和男孩们http://www.youtube.com/watch?v=6QHkv-bSlds&t=15m48s。我可以让操作栏重叠,但无法弄清楚如何将其扩展到状态栏。我还想知道他们如何管理导航栏后面的透明黑色背景(但这不是那么重要)。

任何帮助/建议都会非常感激,因为我目前不知道这是怎么做的(我开始担心它可能只是一个图像而不是一个实际的实现)。

编辑:我知道如何让酒吧完全透明(这就是简单的部分)!我不知道如何扩展操作栏背景以显示在现在的transluscent状态栏

后面

3 个答案:

答案 0 :(得分:13)

我有同样的问题并找到了这个库:https://github.com/jgilfelt/SystemBarTint

看看第300行: https://github.com/jgilfelt/SystemBarTint/blob/master/library/src/com/readystatesoftware/systembartint/SystemBarTintManager.java

setupStatusBarView()为窗口的装饰添加视图。这允许您稍后将颜色/可绘制设置为此视图。

如果使用 SystemBarTint 库,以下内容将允许您将状态栏强制为指定的颜色,然后您可以将其与操作栏的背景匹配:

SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setStatusBarTintColor(Color.parseColor("#DD000000"));

在这种情况下,您可以将操作栏的背景设置为:#DD000000

答案 1 :(得分:3)

Android 4.4 APIs

中所述
  

现在,您可以使用新主题Theme.Holo.NoActionBar.TranslucentDecorTheme.Holo.Light.NoActionBar.TranslucentDecor使系统栏部分半透明。通过启用半透明系统栏,您的布局将填充系统栏后面的区域,因此您还必须为布局中不应被系统栏覆盖的部分启用fitsSystemWindows

     

如果您要创建自定义主题,请将其中一个主题设置为父主题,或在主题中包含windowTranslucentNavigationwindowTranslucentStatus样式属性。

在您的情况下(您想要ActionBar的地方),第二个选项 - 包括主题中的两个新属性 - 将为您提供半透明的导航和状态栏。

答案 2 :(得分:1)

他们正在使用新的Translucent system bars功能(在Android 4.4及更高版本上)。

  

半透明系统栏

     

现在,您可以使用new来使系统条部分半透明   主题,Theme.Holo.NoActionBar.TranslucentDecor和   Theme.Holo.Light.NoActionBar.TranslucentDecor。通过启用半透明   系统栏,你的布局将填充系统栏后面的区域,所以   您还必须为布局的一部分启用fitsSystemWindows   不应该由系统栏覆盖。

     

如果您要创建自定义主题,请将其中一个主题设置为   父主题或包含windowTranslucentNavigation和   您主题中的windowTranslucentStatus样式属性。