我正在 iMX8 平台上自定义基于 NXP 的 Android 10 BSP,我正在尝试制作一个自定义的向上滑动底部表单,该表单对操作系统来说是全局的,例如向下滑动手势上的状态/通知栏。
我关注了这个话题 here但自定义了向上滑动布局以在操作系统上提供可用的应用程序列表(基本上是应用程序中的启动器)。
虽然此功能在我的应用程序中效果很好,但我实际上希望向上滑动布局是全局的,这样无论我当前在哪个卡/应用程序上,我都可以启动应用程序。
由于此功能仅限于我的主应用程序,我将如何着手执行此操作?是否可以将其添加到 SystemUI 中?
最佳答案
是的,从技术上讲,您可以执行类似现有 NotificationBar
的操作,您可以从屏幕顶部拖动它。在你的情况下,你会从底部开始。
NotificationPanelView
的逻辑在 SystemUI
包中。
但请注意,现有的逻辑有点像意大利面条代码,因此可能需要一段时间才能理解才能添加您自己的面板。
您的另一个选择是让您的面板作为所有内容之上的叠加 View (从您的应用程序的后台服务中绘制)。参见 this answer以获得一些初步指导。
您首先会显示一个接收所有输入的透明 View 。如果检测到手势,则将工作表从底部“向上移动”,否则将输入传递给下面的应用程序。
请注意:
- 这意味着您的服务需要成为前台服务,因此它不会被终止。
- 如果您的应用从“设置”中被终止,BottomSheet 也会消失。
- 您不能通过“设置”应用显示此信息(Android 有意限制)
回顾一下:
SystemUI 解决方案从长远来看会更好,限制更少……但最初开发起来更困难。
App overlay 解决方案易于实现,但存在一些可能成为交易破坏者的限制。
关于android - 如何着手在 Android 操作系统中制作全局底部表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64994579/