zoukankan      html  css  js  c++  java
  • Android 4.4及以后将内容布局延伸到状态栏

    首先说明:该文章不是大家说的沉浸式状态栏,网上沉浸式状态栏的博客很多,搜索就有了!

    该篇博客的主要目的就是为了将图片显示在状态栏上,让APP看起来更有型!如下图所示:

     
    界面

    这个界面的布局就是coordinatorLayout + CollapsingToolbarLayout实现的效果,将背景图片显示在状态栏上是不是显得更有逼格呢!至少博主看到还是觉得不错的,虽然第三方沉浸式状态栏的框架也能实现,但个人觉得还是有必要将这篇文章写下来(PS:博主用第三代的沉浸式框架实现好像主要用于修改状态栏的颜色,至于图片就没有做过了)。

    其实,实现这种效果的原理还是透明状态栏,

     
    透明状态栏

    话不多说——show me the code。

    一般情况下,需要创建vaules、values-v19以及values-v21三个文件夹,里面存放着三个版本下的styles文件,在19和21的主题文件下加上上面的item即可,同时切记Activity中的布局中不需要 添加android:fitsSystemWindows="true",不然不能实现效果。

    最后21文件下需要添加statusBarColor为透明颜色的item,

     
    v21文件

    设置好以上步骤之后你可以直接运行项目,会发现以下的情况:

     
    布局上移

    哈哈,哈哈。。。。      这是为什么呢?就是前面说的android:fitsSystemWindows="true"的问题,没在根局部加就会出现这样的问题,BUT,加上又不能实现效果,这该如何是好呢?

    其实,加上android:fitsSystemWindows="true"这句话之后布局文件就会自动在状态栏下开始布局,而不加这句并且在4.4以后加上透明状态栏之后你的activity的布局就会从整个手机屏幕顶端开始布局,而不是从状态栏之后。所以,加上透明状态栏之后说明你的布局被上移了,然后就需要手动来测量状态栏的高度,并且给toolBar(我这里的布局,你的布局不确定哦)设置margin了。

     
    设置margin

          同时,需要知道透明状态栏是4.4之后才能设置的,小于4.4的手机是不识别的,顾它还是直接从状态栏以后开始布局的,所以必须判断手机的版本,不然的话小于4.4的手机会出现对顶部有一个margin,这是我们不愿意看到的。

    最后就实现了这种效果了—— 将布局中的图片延伸到状态栏,实现高逼格应用!



  • 相关阅读:
    PAT顶级 1024 Currency Exchange Centers (35分)(最小生成树)
    Codeforces 1282B2 K for the Price of One (Hard Version)
    1023 Have Fun with Numbers (20)
    1005 Spell It Right (20)
    1092 To Buy or Not to Buy (20)
    1118 Birds in Forest (25)
    1130 Infix Expression (25)
    1085 Perfect Sequence (25)
    1109 Group Photo (25)
    1073 Scientific Notation (20)
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/9112008.html
Copyright © 2011-2022 走看看