Android statusbar 透明后 toolbar与之重叠问题的解决方法

来源:互联网 发布:数据库备份语句 编辑:程序博客网 时间:2024/05/20 05:07

之前想要给statusbar和toolbar实现这样的效果:


为使得statusbar变为透明,在自定义theme中给statusbar添加了以下属性:

        <item name="android:windowTranslucentStatus">true</item>
可是在statusbar变透明后界面却变成下图这个样子:(即toolbar悬浮在statusbar之后)


为了说明情况,我用另一个更明显的界面来解释:


起初我简单粗暴的为toolbar加了一个marginTop属性,强制向下移动20多个dp,虽热表面上可以解决这个问题,可是众所周知,通过固定的dp数来布局页面是不合理的,因为不同大小手机的分辨率不同,statusbar的高度也有所不同。这样简单地加margin很有可能导致statusbar和toolbar出现间隙或重叠。

解决方法:

查阅资料后发现一个简单又科学的属性:

        <!--<item name="android:layout_marginTop">22dp</item>-->        <item name="android:fitsSystemWindows">true</item>
我们把marginTop注释掉,选择将fitsSystemWindows属性设置为true,fitsSystemWindows属性为屏幕自动加入padding,使得所有内容都可以显示在主屏上,而避免被statusbar所掩盖,加上这个属性后顺利解决该问题:




5 0
原创粉丝点击