Android学习历程22-Android修改状态栏颜色和标题栏颜色一致

本文介绍了在Android4.4及以上版本中如何修改状态栏颜色,使其与标题栏颜色一致。在实现过程中,由于状态栏透明可能导致布局被顶起,解决方法包括在布局中添加特殊属性或在Fragment中使用填充块替代状态栏。同时,文章提供了获取状态栏高度的代码,并提醒避免使用`setHeight`方法设置TextView高度。

这个特性是andorid4.4支持的,最少要api19才可以使用。下面介绍一下使用的方法,非常得简单

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

状态栏是指手机屏幕上面显示电量、信号的那一栏,
导航栏是指有些手机没有物理按键,程序运行是会在最下方的那些返回键、Home键那一栏


但是在我们实际开发过程中,如果仅仅只是调用这个方法会遇到一系列的问题:

1、设置状态栏透明之后,布局页面会被顶上去,导致界面内部的部分布局和状态栏发生覆盖,网上会有很多资料让在布局的最上面那个空间里面加入两行代码(比如你最上面的是TextView,那则在TextView的布局里面加入这两行代码):

android:fitsSystemWindows=true
android:clipToPadding=true

解释一下上面两个布局属性的意思:

android:clipToPadding 定义布局间是否有间距

android:fitsSystemWindows=”true” 意思就是设置应用布局时是否考虑系统窗口布局;如果为true,将调整系统窗口布局以适应你自定义的布局。比如系统有状态栏,应用也有状态栏时。看你这个布局代码,恰恰是在定义标题栏样式,所以用到这行代码了。

2、对于上面这种处理方式,在Activity里面是可以实现的,但是对于目前市面上绝大部分的应用程序而言,都是采用的Activity里面嵌套使用Frangment的模式,如果是这种结构,使用上面那种处理方式,则不会达到

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值