接口: DragGestureOptions
更新: 2025/7/20 字数: 0 字 时长: 0 分钟
floating_window.FloatingWindow
悬浮窗对象。用于控制悬浮窗位置、大小、内容等。
继承关系
unknownFloatingWindow
目录
属性
方法
属性
isShowing
ReadonlyisShowing:boolean
悬浮窗是否正在显示。
position
Readonlyposition:Point
悬浮窗的当前位置。
size
Readonlysize:Size
悬浮窗的当前大小。
view
OptionalReadonlyview: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>
