SystemUI下拉通知菜单栏定时自动隐藏

前言

在系统应用开发过程中,常常遇到一些特殊的需求,Android原生的应用并无此适配,此时需要对系统应用进行定制化开发。
目前遇到的这样一个需求:下拉通知菜单栏时,定时8秒后自动关闭通知菜单栏。通知菜单栏为SytstemUI中的一个特殊窗口,原车系统不支持自动关闭。

开发

  1. 下拉菜单自动隐藏逻辑
    在原生NotificationPanelView类中,增加了下拉菜单展开回调:
    在这里插入图片描述
    以及下拉菜单收起回调:
    在这里插入图片描述
    同时增加触摸回调,触摸时再次更新延时退出:
    在这里插入图片描述
    StatusBar类注册监听处理收起逻辑:
    在这里插入图片描述
  2. 下拉菜单与系统弹框的互斥逻辑
    PanelBar类的触摸事件onTouchEvent()回调中,通过发送系统CLOSE_SYSTEM_DIALOGS广播通知其他应用隐藏显示的弹框。
  3. 自定义界面加载
    StatusBar类中createAndAddWindows()初始化自定义的systemui view的状态栏和下拉菜单控制器,createNavigationBar()初始化导航栏的控制器。
    在这里插入图片描述
    在这里插入图片描述
    WindowHelper承载着systemui view的初始化操作以及与原生SystemUI的交互操作,setPanelControl()为控制下拉菜单展开收起的方法,其中外部可通过此方法来控制下拉菜单展开和收起,例如语音和方控控制展开和收起。

总结

通过对原车SystemUI的定制化开发,扩展不同需求,从而不影响原车SystemUI功能,定时自动隐藏下拉通知菜单栏开发难度不到,需要修改的地方也不是很多,可以稳定兼容原车SystemUI。

猜你喜欢

转载自blog.csdn.net/CJohn1994/article/details/134901931