【Android】透明状态栏和导航栏的适配解决方案满足所有机型 kotlin java
背景
项目想让整个app能够全部融到手机中,所以需要对状态栏和导航栏进行适配
参考
透明状态栏android
【Android】状态栏的适配-符合activity活动的主流颜色(附代码)
val lp = window.attributeslp.flags = lp.flags or WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUSwindow.attributes = lp
问题发现
在有些机型上是存在半透明的情况,例如华为的机子;但是在小米这里就很完美地展现。很迷。
改进代码实现
采用kotlin的扩展函数
import android.app.Activity
import android.graphics.Color
import android.view.View
import android.view.ViewTreeObserver
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompatfun Activity.setTransparentStyle(view: View) {window.statusBarColor = Color.TRANSPARENTWindowCompat.setDecorFitsSystemWindows(window, false)view.viewTreeObserver.addOnGlobalLayoutListener(object :ViewTreeObserver.OnGlobalLayoutListener {override fun onGlobalLayout() {view.viewTreeObserver.removeOnGlobalLayoutListener(this)WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = trueview.setPadding(0,ViewCompat.getRootWindowInsets(window.decorView)?.getInsets(WindowInsetsCompat.Type.statusBars())?.top ?: 0,0,ViewCompat.getRootWindowInsets(window.decorView)?.getInsets(WindowInsetsCompat.Type.navigationBars())?.bottom ?: 0)}})
}
在onCreate的时候调用上述代码即可
【Android】透明状态栏和导航栏的适配解决方案满足所有机型 kotlin java相关推荐
- Android 沉浸式透明状态栏与导航栏
Android 系统自4.2 开始 UI 上就没多大改变,4.4 也只是增加了透明状态栏与导航栏的功能 这个特性是andorid4.4支持的,最少要api19才可以使用.下面介绍一下使用的方法,非常得 ...
- Android隐藏状态栏、导航栏
Android隐藏状态栏.导航栏 [java] view plaincopy private void hideStatusNavigationBar(){ if(Build.VERSION.SDK_ ...
- 关于Android全面屏虚拟导航栏的适配总结
Android系统发布十多年以来,关于Android的UI的适配一直是开发环节中最重要的问题,但是我看到还是有很多小伙伴对Android适配方案不了解.刚好,近期准备对糗事百科Android客户端设计 ...
- 固定导航栏android,Android 状态栏和导航栏的真终极解决方案
去年我写过一篇文章,透明状态栏和导航栏的终极解决方案,并在 Github 上开源了代码,https://github.com/Zackratos/UltimateBar,其实在那之后,我一直对这个项目 ...
- android界面UI美化:沉浸模式、全透明或半透明状态栏及导航栏的实现
android api19开始我们就能对顶部状态栏和底部导航栏进行半透明处理了,而api21开始则可以实现全透明状态栏与导航栏以及开启沉浸模式,至于什么是沉浸模式,大家百度一下应该就都知道了,有一点需 ...
- android界面美化教程,android界面UI美化:沉浸模式、全透明或半透明状态栏及导航栏的实现...
android api19开始我们就能对顶部状态栏和底部导航栏进行半透明处理了,而api21开始则可以实现全透明状态栏与导航栏以及开启沉浸模式,至于什么是沉浸模式,大家百度一下应该就都知道了,有一点需 ...
- Android 5.0状态栏和导航栏
Material Design推出之后,app中也開始沿用这样的风格 今天来说一下状态栏颜色设置,在4.4的时候推出了透明状态栏和导航栏.在不使用第三方库的情况下,4.4还是没有全然解决存在actio ...
- android 电话 状态栏,Android透明式状态栏、导航栏实现
有很多应用有透明式状态栏.导航栏,表现形式是在不同页面里,状态栏可以与最上面的背景图片或者颜色保持一致.典型的案例就是手Q:(如图所示) 很明显,在手Q中主要的几个页面的标题栏(ActionBar位置 ...
- android 导航栏半透明,Android 沉浸式/透明式状态栏、导航栏
前言 Android 从4.4开始引进透明状态栏和导航栏的概念,并且在5.0进行了改进,将透明变成了半透明的效果.虽然此特性最早出现在ios,但不否认效果还是很赞的. 至于4.4以下的手机,就不要考虑 ...
最新文章
- html5 drag this,HTML5拖放(drag和drog)
- iOS 9音频应用播放音频之iOS 9音频播放进度
- Go 语言编程 — gorm 数据库版本迁移
- 老大难的空指针,如何优雅处理?
- Python Mysql_db对数据查询进行处理
- 【机器视觉】Qt联合Halcon编程之显示多图片
- [Leetcode][第647题][JAVA][回文子串][动态规划][中心扩展][Manacher 算法]
- 清华提出LogME,无需微调就能衡量预训练模型的下游任务表现!
- 包含目录、库目录、附加包含目录、附加库目录、附加依赖项如何使用? 及静态库,动态库的创建与调用和vs里引用的使用
- 怎么使用Eclipse默认的keystore签名打包成Apk
- git 如何忽略掉文件夹_如何使git忽略某些文件或文件夹
- Oracle sql 错误 : ORA-01861: 文字与格式字符串不匹配和日期与字符串互转问题解决
- 从0开始构建自己的前端知识体系-JS-事件-键盘事件总结
- java 求正割_Java中AQS基本实现原理
- 【Java获取国家法定节假日三种工具类其三】
- ESP8266模块使用完整教程
- ffmpeg中支持的音频互相转换的采样格式和声道分布
- C语言 输入一个整数n,求出其阶乘
- Android图表控件MPAndroidChart——LineChart实现 XY轴、原点线的直尺刻度样式
- H264/AVC Hypothetical Reference Decoder(HRD)