【问题标题】:Transparent actionBar and statusBar in Android lollipopAndroid棒棒糖中的透明actionBar和statusBar
【发布时间】:2015-02-04 16:58:05
【问题描述】:

我正在尝试创建这个界面:

这是我的实际结果:

  • 状态栏非常透明,我们看到我的图像作为背景:好的
  • 操作栏不透明:NOK

这是我用于此活动的主题代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- inherit from the material theme -->
    <style name="MaterialAppDetailTheme" parent="android:Theme.Material.Light">

        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowActionBarOverlay">true</item>

        <!-- enable window content transitions -->
        <item name="android:windowContentTransitions">true</item>

        <!-- specify shared element transitions -->
        <item name="android:windowSharedElementEnterTransition">
            @transition/change_image_transform</item>
        <item name="android:windowSharedElementExitTransition">
            @transition/change_image_transform</item>

        <item name="android:windowTranslucentNavigation">true</item>
        <item name="android:windowTranslucentStatus">true</item>

    </style>
</resources>

【问题讨论】:

  • 您使用的是操作栏还是工具栏?
  • @PedroOliveira actionBar

标签: android android-actionbar android-theme


【解决方案1】:

您可以像这样将工具栏颜色更改为透明:

mToolbar.setBackgroundColor(getResources().getColor(android.R.color.transparent));

您也可以在 XML 上更改它的背景:

android:background="@android:color/transparent"

或者,如果您使用的是 ActionBar:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent)));

如果您不使用ActionBarActivity,请使用getActionBar()

结果:

【讨论】:

  • 如果他在主题/布局xml中使用fitSystemWindow,他需要在状态栏的大小上添加额外的marginTop。否则状态栏底线会在导航图标上,不好看。
  • 我想他已经明白了,因为他描述的唯一问题是他的操作栏不透明。当前屏幕只是我为显示效果而构建的。
  • 是的,作为预防措施。 :)
【解决方案2】:

使用这种风格:

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="android:textColorPrimary">@color/my_text_color</item>
    <item name="colorPrimary">@android:color/transparent</item>
    <item name="windowActionBarOverlay">true</item>
</style>

【讨论】:

    【解决方案3】:

    对于 >= 21 的 API,将这些代码行添加到主题中

    <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item>

    别忘了添加

    android:fitsSystemWindows="true"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-18
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多