Android棒棒糖中的透明actionBar和statusBar

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android棒棒糖中的透明actionBar和statusBar相关的知识,希望对你有一定的参考价值。

我正在尝试创建此接口:

这是我的实际结果:

  • 状态栏透明,我们将图像视为背景:好的
  • 操作栏不透明: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>
答案

您可以将工具栏颜色更改为透明,如下所示:

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)));

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

结果:

另一答案

使用这种风格:

<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>
另一答案

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

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

别忘了添加

android:fitsSystemWindows="true"

以上是关于Android棒棒糖中的透明actionBar和statusBar的主要内容,如果未能解决你的问题,请参考以下文章

棒棒糖上完全透明的状态栏和导航栏

Android:具有动态 actionBar 颜色和 DrawerLayout 的透明状态栏

透明ActionBar

使用Android Navigation Component,如何使actionBar透明并在单个Fragment中使布局全屏?

Android:透明图标栏?

android:clipToPadding和android:clipChildren