接口: FloatingWindow


接口: FloatingWindow

floating_window.FloatingWindow

悬浮窗对象。用于控制悬浮窗位置、大小、内容等。

继承关系

  • unknown

    FloatingWindow

目录

属性

方法

属性

isShowing

Readonly isShowing: boolean

悬浮窗是否正在显示。


position

Readonly position: Point

悬浮窗的当前位置。


size

Readonly size: Size

悬浮窗的当前大小。


view

Optional Readonly view: any

当前悬浮窗的内容View,若没有设置,则为undefined

方法

addFlags

addFlags(flags): void

给悬浮窗口增加特定标志位,比如FLAG_NOT_TOUCHABLE让窗口不可触摸,FLAG_NOT_FOCUSABLE让窗口不可获得焦点。

本模块附带部分常用的标志位,但完整的标志位需要访问Android文档WindowManager.LayoutParamsopen in new window

示例

"nodejs";
const { createWindow, FLAG_NOT_TOUCHABLE } = require("floating_window");
async function main() {
  const window = createWindow();
  window.setViewFromXml(...);
  window.addFlags(FLAG_NOT_TOUCHABLE)
  window.show();
}
main();

参数

名称 类型
flags number

返回值

void


close

close(): Promise<void>

关闭悬浮窗。

返回值

Promise<void>


enableDrag

enableDrag(view, options?): DragGesture

启用悬浮窗的拖拽手势。

参数

名称 类型 描述
view View 启用拖拽手势的拖动锚点,拖动该View即可拖动整个悬浮窗
options? DragGestureOptions 拖拽悬浮窗的选项

返回值

DragGesture

DragGesture对象,可用于后续禁用手势


on

on(event, listener): FloatingWindow

参数

名称 类型
event "touch"
listener (event: any) => void

返回值

FloatingWindow


removeFlags

removeFlags(flags): void

对悬浮窗口移除特定标志位,比如FLAG_NOT_TOUCHABLE让窗口恢复可触摸,FLAG_NOT_FOCUSABLE让窗口可获得焦点。

本模块附带部分常用的标志位,但完整的标志位需要访问Android文档WindowManager.LayoutParamsopen in new window

示例

"nodejs";
const { createWindow, FLAG_LAYOUT_NO_LIMITS, FLAG_NOT_FOCUSABLE } = require("floating_window");
async function main() {
  const window = createWindow();
  window.setViewFromXml(...);
  window.removeFlags(FLAG_LAYOUT_NO_LIMITS | FLAG_NOT_FOCUSABLE)
  window.show();
}
main();

参数

名称 类型
flags number

返回值

void


setPosition

setPosition(x, y): Promise<void>

设置悬浮窗的位置,单位为像素。

参数

名称 类型 描述
x number x坐标
y number y坐标

返回值

Promise<void>


setSize

setSize(width, height): Promise<void>

设置悬浮窗的大小,单位为像素。

参数

名称 类型 描述
width number 宽度,可能为负数,参见Size。
height number 高度,可能为负数,参见Size。

返回值

Promise<void>


setView

setView(view): void

设置给定的View为悬浮窗的内容。

参数

名称 类型
view View

返回值

void


setViewFromXml

setViewFromXml(xml): void

解析xml为View,设置为悬浮窗的内容。

参数

名称 类型
xml string

返回值

void


setViewFromXmlFile

setViewFromXmlFile(xmlFile): Promise<void>

解析给定路径的xml文件为View,设置为悬浮窗的内容。读取文件是异步的,因此此函数也是异步的。

参数

名称 类型 描述
xmlFile string xml文件路径

返回值

Promise<void>


show

show(): Promise<void>

显示悬浮窗。

需要注意的是,显示悬浮窗需要启动悬浮窗服务,若应用处于后台,可能会无法启动服务;另外,显示悬浮窗需要悬浮窗权限,如果没有权限,悬浮窗可能无法显示,可以使用manageDrawOverlayscanDrawOverlays来查询和跳转悬浮窗权限。

返回值

Promise<void>