Android中 4.4-5.0 系统状态栏颜色的修改。实现Translucent System Bar

本文介绍了如何在Android 4.4到5.0系统中实现状态栏透明和颜色一体化,通过在AndroidManifest.xml设置Theme,以及在布局文件中使用android:fitsSystemWindows属性来调整状态栏效果。对比了添加和不添加此属性的界面差异,并解释了android:fitsSystemWindows属性的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Android 4.4之前,打开app的时候我们能看到系统顶部那条黑乎乎的通系统状态栏。但是Android 4.4开始,引入了Translucent System Bar的系特性,弥补系统通知栏突兀之处。当我们使用这个特性的前后对比我们来看一下。




在这里我们使用一种简单的方法,之前在网上也看过类似的实现方法,一种是直接在代码里面去设置,还有一种直接修改主题的样式,个人感觉后面一种比较方便,也容易理解,在这里就介绍一下第二种方法。


首先要到AndroidManifest中为指定的Activity去设置Theme,不过我们不能在values/style.xml中直接去定义Translucet System Bar的Theme,因为对应的版本不一样,该特性只兼容Android 4.4开始的版本。可以建几个不同版本的values,比如values、values-v19、values-v21。


利用主题样式去设置的话。

1.我们先把values创建完成,里面有三个版本的styles。



values/styles.xml

	<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
   	  <!--Android 4.4之前的版本上运行,直接跟随系统主题-->
	  </style>

values-v19/styles.xml

<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">true</item>
</style>
设置了属性  windowTranslucentStatus  和 windowTranslucentNavigation  为true,我们必须设置这两个属性的值为true才行,以便使我们定义的layout侵入系统栏的领域。


values-v21/style.xml

<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowTranslucentStatus">false</item>
    <item name="andro
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值