Android Material Design 之手机充分利用状态栏空间

充分利用状态栏空间

Android Material Design 之手机充分利用状态栏空间Android Material Design 之手机充分利用状态栏空间Android Material Design 之手机充分利用状态栏空间像这张照片一样看着舒服Android Material Design 之手机充分利用状态栏空间Android Material Design 之手机充分利用状态栏空间Android Material Design 之手机充分利用状态栏空间

Android Material Design 之手机充分利用状态栏空间

想要让背景和系统状态栏充分融合


需要借助

android:fitsSystemWindows

这个属性来完成

将 android:fitsSystemWindows这个属性设置为true即可以了


不过要谨记必须要将图片布局结构(例如ImageView之类的)所有父布局都设置上这个属性才可以

Android Material Design 之手机充分利用状态栏空间Android Material Design 之手机充分利用状态栏空间不过。。。难道就这么简单的吗?Android Material Design 之手机充分利用状态栏空间Android Material Design 之手机充分利用状态栏空间


你会发现结果不尽人。。


为啥那?

因为还必须在程序的主题中将状态栏颜色指定为透明 的才行


指定透明色的方法很简单

在主题中

android:statusBarColor属性的值

指定为

@android:color/transparent就可以了


但问题在于android:statusBarColor这个属性

是从Android5.0开始才有的

Android Material Design 之手机充分利用状态栏空间Android Material Design 之手机充分利用状态栏空间之前的系统无法指定这个属性Android Material Design 之手机充分利用状态栏空间Android Material Design 之手机充分利用状态栏空间


系统差异的功能就开始了


android5.0之前的系统

android5.0之后的系统

我们在android5.0的基础上还需要对values/styles.xml文件进行修改

右击res目录->New->Diretory,创建一个values-21目录,然后右击values-21目录->New->Values resource file,创建一个styles.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/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="FruitActivityTheme" parent="AppTheme">

    </style>
</resources>

并且修改AndroidManifest.xml中的代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="FruitActivityTheme" parent="AppTheme">
        <item name="android:statusBarColor">@android:color/transparent</item>
    </style>
</resources

<activity
    android:name=".FruitActivity"
    android:theme="@style/FruitActivityTheme">
</activity>

Android Material Design 之手机充分利用状态栏空间

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="FruitActivityTheme" parent="AppTheme">
        <item name="android:statusBarColor">@android:color/transparent</item>
    </style>
</resources>


具体项目请访问[我的github]之MaterialTest