接口: 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>
