欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android 状态栏透明的一些小结

程序员文章站 2022-06-05 13:18:05
...

Android 状态栏颜色修改,在不同版本上有不同的特性,下面做个小结:

几个相关属性说明

 

1、4.4新增属性

android:fitsSystemWindows  是否为子空间预留不久
android:windowTranslucentStatus   状态栏是否透明

 

(1)根据官方文档,如果某个View 的fitsSystemWindows 设为true,那么该View的padding属性将由系统设置,用户在布局文件中设置的
padding会被忽略。系统会为该View设置一个paddingTop,值为statusbar的高度。fitsSystemWindows默认为false。

(2)4.4开始可以设置状态栏是否透明,透明效果如下:

Android 状态栏透明的一些小结  

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".ScrollingActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/app_bar_height"
        android:fitsSystemWindows="false"
        android:background="#ff00F8"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="false"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:toolbarId="@+id/toolbar">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_scrolling" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin"
        app:layout_anchor="@id/app_bar"
        app:layout_anchorGravity="bottom|end"
        app:srcCompat="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

 

(3)上面通过设置 android:fitsSystemWindows=true 来让布局给预留状态栏的高度,所以可以看得状态栏变灰色;

(4)如果将android:fitsSystemWindows=true ,布局文件会向上移,占用状态栏空间

Android 状态栏透明的一些小结

 

其他详细特性可以参考:

https://www.jianshu.com/p/5cc3bd23be7b

2、5.0新增属性

colorPrimary 应用的主要色调,actionBar默认使用该颜色,Toolbar导航栏的底色

colorPrimaryDark 应用的主要暗色调,statusBarColor默认使用该颜色

statusBarColor 状态栏颜色,默认使用colorPrimaryDark

 

5.0以上默认状态栏会采用在style.xml 设置的主题颜色

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

(1)如果设置了 android:windowTranslucentStatus =true ,状态栏将透明,处理情况同 上面4.4 的情况;

(2)可以通过设置statusBarColor 设置颜色

  其他特性参考

https://blog.csdn.net/ddddwwww2/article/details/72868376

 

参考:

1、https://blog.csdn.net/ddddwwww2/article/details/72868376

2、https://www.jianshu.com/p/5cc3bd23be7b

相关标签: android基础知识