SystemUI中新添加Window(屏保)与导航栏交互出现的常见问题

本文主要探讨了在系统UI中新增屏保功能时遇到的导航栏隐藏与交互问题。通过分析代码,找到了解决方案,包括在显示和隐藏屏保时调整导航栏状态,并通过设置特定窗口属性以防止屏保界面显示问题。同时,介绍了如何控制导航栏在屏保界面的滑出行为,加深了对Window层级管理和锁屏状态导航栏处理的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不积跬步无以至千里    

最近项目项目里添加了屏保功能,屏保实际为锁屏或者屏幕休眠,出现的一个Window,此用以显示时间与通知的重要信息,并具有省电模式的一个界面。

这一块的实现主要是通过添加一个Window,此Window的层级位于锁屏之上,但是又要低于一些系统重要的弹窗Window(比如调节音量、PowerUI重启的等等),因此此处挑选了Window层级为 WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL,但是其层级是低于导航栏的等级的 WindowManager.LayoutParams.TYPE_NAVIGATION_BAR,因此经过测试提出如下两个bug:

1、Settings设置了导航栏的不可隐藏,但是现在发现经过锁屏操作之后,发现导航栏被隐藏了。

2、发现在无锁屏状态时,并开启屏保功能,唤醒屏保,发现屏保可以上滑出导航栏并能操作导航栏的按钮。

bug图如下:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rom_Fisher

赠人玫瑰,手留余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值