使用透明状态栏必须在 4.4(API19)以上,在5.0(API21)做了优化,所以需要不同适配。设置透明状态栏,采取的是使用较多的方法,设置不同style
创建 values-v19/style.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/color_2da568</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowTitleBackgroundStyle">@color/color_2da568</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:fitsSystemWindows">true</item>
</style>
</resources>
创建 values-v21/style.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/color_2da568</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowTitleBackgroundStyle">@color/color_2da568</item>
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:fitsSystemWindows">true</item><!--可能导致 toast内容位置改变,解决方案:使用全局context-->
</style>
</resources>
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_2da568"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/color_2da568">
<TextView
android:onClick="onClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="透明状态栏"
android:textColor="@android:color/white"
android:textSize="20sp" />
</RelativeLayout>
<FrameLayout
android:background="@android:color/white"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
</LinearLayout>