在android开发中,大家一定受到过不少StatusBar通顶问题的困扰。由于Android没有在xml布局构造器中提供类似ios开发中safearea一类的辅助线,而且android碎片化过于严重。导致没有办法一劳永逸的解决StatusBar的通顶问题(本篇博客其实也并没有在为4.4提供解决方案,4.4的通顶问题可以参考其他博客)。

在针对通顶问题进行一段时间的研究后,发现其实官方有对通顶给出过解决方案,只是没有给出的那么直接。本篇文章提供的方案很简单,并不需要去动态反射获取StatusBar高度。也不需要从Theme里面拿StatusBar字段,更不需要创建一个透明的view。只需要依靠fitsystemwindow就可以解决大部分新手机上的通顶问题,原理其实很简单,但是没有看到网上提出对应的解决方案。就把方案方上来了。

废话不多说,看效果:

布局文件: 

<?xml version="1.0" encoding="utf-8"?>                

activity(Kotlin):

class MainActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        window.decorView.systemUiVisibility = window.decorView.systemUiVisibility or                    View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or                    View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN        setContentView(R.layout.activity_main)    }}

关于Android StatusBar 通顶问题的讨论和解决方案_第1张图片

 

删除第二个constraintlayout中的:

android:fitsSystemWindows="true"

关于Android StatusBar 通顶问题的讨论和解决方案_第2张图片

思路其实很简单就是让系统去配置是否需要fitSystemWindow从而改变该view的子view的排列方式

更多相关文章

  1. 转载——Android大图片裁剪终极解决方案
  2. Android实现推送方式解决方案 (转1)
  3. Android Animation动画实战(一): 从布局动画引入ListView滑动时,每一
  4. Android 软件盘之使特定布局保持在软键盘之上
  5. Android App 反应卡顿解决方案
  6. Android 动态解析网络布局
  7. 深入探索Android布局优化(上)

随机推荐

  1. 第九章 多语言环境的支持和多屏幕的适配(2
  2. Android(安卓)仿Iphone文件夹分裂效果
  3. Android(安卓)开机如何跨过Luancher界面
  4. android sqlit数据库升级,添加字段
  5. Android(安卓)UI界面(分辨率)最实用的的
  6. Android(安卓)SurfaceView 详解(一)
  7. Android之GPU过度绘制与图形渲染优化——
  8. Android事件总线框架设计:EventBus3.0源码
  9. Android(安卓)官方 Training 文档学习总
  10. 你觉得Android又凉了?那带你看下2020年And