直播app源码,状态栏和导航栏设置成透明状态
直播app源码,状态栏和导航栏设置成透明状态实现的相关代码
设置页面透明,使用主题
注册activity设置主题
1 | <br> <style name= "TranslucentNoActionBarTheme" parent= "Theme.AppCompat.NoActionBar" ><br> <item name= "windowActionBar" >false</item><br> <item name= "android:windowContentTransitions" >true</item><br> <item name= "android:windowBackground" >@android:color/transparent</item><br> <item name= "android:windowIsTranslucent" >true</item><br> </style> |
设置状态栏和导航栏透明
直接调用下面方法,传当前activity即可
1 | <br> public void setNavAndStatusBarTransparent(Activity activity) {<br> if (activity == null) {<br> return ;<br> }<br> try {<br> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {<br> Window window = activity.getWindow();<br> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {<br> if (window != null) {<br> View decorView = window.getDecorView();<br> //两个 flag 要结合使用,表示让应用的主体内容占用系统状态栏的空间<br> int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN<br> | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;<br> decorView.setSystemUiVisibility(option);<br> window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);<br> window.setStatusBarColor(Color.TRANSPARENT);<br> //导航栏颜色也可以正常设置<br> window.setNavigationBarColor(Color.TRANSPARENT);<br> }<br> } else {<br> if (window != null) {<br> WindowManager.LayoutParams attributes = window.getAttributes();<br> if (attributes != null) {<br> int flagTranslucentStatus = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;<br> int flagTranslucentNavigation = WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;<br> attributes.flags |= flagTranslucentStatus;<br> attributes.flags |= flagTranslucentNavigation;<br> window.setAttributes(attributes);<br> }<br> }<br> }<br> }<br> } catch (Exception e) {<br> e.printStackTrace();<br> }<br> } |
设置activity点击事件透传
注意要在onCreate方法的setContenView前添加如下代码
1 | <br> //设置activity点击透传<br> WindowManager.LayoutParams layoutParams = getWindow().getAttributes();<br> layoutParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS |<br> WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;<br> |
以上就是 直播app源码,状态栏和导航栏设置成透明状态实现的相关代码,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现