接口: DragGestureOptions
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.LayoutParams。
示例
"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对象,可用于后续禁用手势
on
▸ on(event
, listener
): FloatingWindow
参数
名称 | 类型 |
---|---|
event | "touch" |
listener | (event : any ) => void |
返回值
removeFlags
▸ removeFlags(flags
): void
对悬浮窗口移除特定标志位,比如FLAG_NOT_TOUCHABLE让窗口恢复可触摸,FLAG_NOT_FOCUSABLE让窗口可获得焦点。
本模块附带部分常用的标志位,但完整的标志位需要访问Android文档WindowManager.LayoutParams。
示例
"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
>
显示悬浮窗。
需要注意的是,显示悬浮窗需要启动悬浮窗服务,若应用处于后台,可能会无法启动服务;另外,显示悬浮窗需要悬浮窗权限,如果没有权限,悬浮窗可能无法显示,可以使用manageDrawOverlays和canDrawOverlays来查询和跳转悬浮窗权限。
返回值
Promise
<void
>