**简要:**android从4.4版本及以后加入了沉浸式状态栏的设置,但是也有一些问题,特别是自定义的最上面导航栏时,会出现一些问题,我想就我遇到的问题给大家一些讲解。
设置方法:
第一行代码:透明状态栏
第二行代码:透明导航栏
注意,如果你设置了无导航栏,设置No Title,第二行代码可以不写

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

加上着两行代码后:就可以实现沉浸式状态栏了,但是有一个问题,你自定义的导航栏一部分内容会被盖住,想下图这样:

谷歌给提供了一种解决方法,就是在相应的activity xml文件中加入这两行代码:

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

当你把这两行属性代码加在activity根目录时,效果却变成这样:
也就是状态栏变成了那样,并没有解决此问题,怎么办呢,进行网上搜索,说是把那两行代码加到应用详情那个textview上,试试看。但是如下图

反而有点错乱了。还是不行
最后经过网上搜索,找到了一个第三方的东西,可以很好解决这个问题,那就是systembartint-1.0.4.jar
加入这个jar包后,在Activity的onCreate方法里加入这几行代码:

SystemBarTintManager tintManager = new SystemBarTintManager(this);        tintManager.setStatusBarTintEnabled(true);        tintManager.setNavigationBarTintEnabled(true);        tintManager.setTintColor(Color.parseColor("#03A9F4"));  //把这个颜色设置成和导航栏一样的颜色

效果图
完美解决,当然这是针对自定义导航栏或者标题连而没有用到系统的actionbar等标题栏问题的解决,如果是普通页面没有涉及到导航栏什么的可以不用此方法。

源码下载地址

更多相关文章

  1. Android(安卓)Edittext 手机号码格式输入设置
  2. Android(安卓)Studio安装和虚拟机的安装
  3. Android平台实现与Apache Tomcat服务器数据交互(MySql数据库)
  4. Android使用外部字体
  5. Android(安卓)开发学习手记(三):关于PullToRefresh的setOnTouchList
  6. neon优化的yuv420转rgb24汇编代码,iOS/Android可用
  7. Android(安卓)O 8.0及其以上系统的通知(Notification)、安装apk
  8. android ui篇 自己写界面
  9. Android(安卓)Camera 预览拉伸

随机推荐

  1. 深入浅出Android(安卓)Gradle构建系统(三
  2. Android(安卓)学习笔记——利用JNI技术在
  3. Android内存管理机制之一:lowmemory kille
  4. Android中的Intent标准跳转应用
  5. 分析Android(安卓)根文件系统启动过程(ini
  6. 学Android开发的人可以去的几个网站
  7. Android缩略图类源代码
  8. Android中如何获取视频文件的缩略图
  9. android的抽屉控件SlidingDrawer的使用
  10. 八款开源Android游戏引擎