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。

相关推荐

  1. Android10.0 SystemUI 通知去掉左右滑动菜单

    2023-12-10 02:00:03       58 阅读
  2. android 9 Systemui 动态隐藏导航

    2023-12-10 02:00:03       56 阅读
  3. html导航+菜单+表单验证

    2023-12-10 02:00:03       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-10 02:00:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-10 02:00:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-10 02:00:03       82 阅读
  4. Python语言-面向对象

    2023-12-10 02:00:03       91 阅读

热门阅读

  1. qt treeview 控制节点收缩

    2023-12-10 02:00:03       61 阅读
  2. 【Python】 Python 中实现单例模式?

    2023-12-10 02:00:03       60 阅读
  3. Android 使用aapt工具获取apk信息

    2023-12-10 02:00:03       55 阅读
  4. 工业IC是什么

    2023-12-10 02:00:03       57 阅读
  5. 文件服务器搭建

    2023-12-10 02:00:03       63 阅读
  6. 类欧几里得算法

    2023-12-10 02:00:03       52 阅读
  7. openssl生成nginx ssl证书的简单方法

    2023-12-10 02:00:03       55 阅读
  8. 力扣面试150题 | 26.删除有序数组的重复项

    2023-12-10 02:00:03       69 阅读
  9. SQL注入原理及思路(mysql)

    2023-12-10 02:00:03       57 阅读