0

我想在 Android 4.4 的应用程序中创建一个透明的状态栏。我怎么做?

我累了:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/skipPrimary</item>
        <item name="colorPrimaryDark">@color/skipPrimary</item>
        <item name="colorAccent">@color/skipPrimary</item>
    </style>

在清单中:

<application
        android:name=".App"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/AppTheme" >

并在活动中:

<activity
            android:name=".activities.StartActivity"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme"
            android:windowSoftInputMode="adjustResize|stateHidden" />
4

2 回答 2

0

这将在 Lollipop 设备上引发异常。primColor 必须是不透明的。

<item name="primColor">@android:color/transparent</item> 

使用样式设置您的操作栏style.xml

<style name="ThemeActionBar"
        parent="Widget.AppCompat.Light.ActionBar.Solid">
        <item name="android:background">@null</item>
        <!-- Support library compatibility -->
        <item name="background">@null</item>
</style>

包括你的主题..

<item name="android:actionBarStyle">@style/ThemeActionBar</item>
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/ThemeActionBar</item>
<item name="windowActionBarOverlay">true</item>
于 2015-07-30T06:34:11.807 回答
0

您还可以做的是通过在您的活动中设置状态栏,将其设置为背景的较深阴影甚至相同的颜色。

您可以使用以下代码在您的活动中设置状态栏颜色getWindow().setStatusBarColor(getResources().getColor(R.color.your_color));

如果您想使用较深的颜色阴影,可以通过更改颜色的 HSB 来实现。有关执行此操作的更详细方法,您可以阅读这篇文章:Android 通过转换现有颜色的 HSB 更改状态栏颜色

于 2015-11-29T18:23:23.433 回答