关于沉浸式状态栏的一些心得

Android 从 4.4(KitKat) 开始提供了一个视觉上的提升,让最上方的状态栏 (Status Bar) 以及最下方的导航栏 (Navigation Bar) 可以被透明化,并让 APP 的内容可以往上下延伸,使整个画面的可被利用度大幅提升。

在你的BaseActivity里使用这两段代码可以做到沉浸式状态栏效果

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) 
{
//使状态栏透明
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    //使导航栏透明getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}

特别注意
使导航栏透明时,一些底部透明的机型可能会出现下面的情况
这里写图片描述
底部有一部分内容在虚拟按键之下,如不需要去掉导航栏透明代码即可。

现在我在用的方法是新建一个values-v19文件夹,只要Android版本高于4.4便能够实现沉浸式状态栏,同样也要注意navigation的属性

    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">

        <!-- API 19 theme customizations can go here. -->
        <item name="android:windowTranslucentNavigation">false</item>
        <item name="android:windowTranslucentStatus">true</item>
    </style>

还有一些什么蛋疼的事
布局里如果没有写这两段代码 app的内容就会和状态栏叠加在一起

android:clipToPadding="false"
android:fitsSystemWindows="true"

但是如果你写了
你的顶部布局就会扁掉
因为状态栏会占用你的布局(大概这么高25dp
怎么办呢?
布局写高一25dp不就得了?
但如果低版本的呢?App的标题栏就会显得巨高无比。

values-v19 又显示出她的作用了

 <dimen name="topbar_vertical_height">72dp</dimen>

完美


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值