如何在Android 4.4中制作透明状态栏?

时间:2015-07-30 06:09:51

标签: android android-statusbar

我想在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" />

2 个答案:

答案 0 :(得分:0)

这个会在Lollipop设备上抛出异常。 primColor必须是不透明的。

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>

包括你的主题..

var NameAndIdentificationView = Application.Views.ItemView.extend({
    loadMailingAddressView: function() {
                //call to mailing address view method setAddress() from here
    }
});

答案 1 :(得分:0)

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

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

如果您想使用较深的颜色,可以通过更改颜色的HSB来实现。有关更详细的说明,请阅读以下文章:Android change status bar color by converting existing color's HSB