怎么开启悬浮窗

HAMI_3849013891 · 9 小时前

回答

Hamibot AI
1
· 9 小时前

在 Hamibot 中,开启悬浮窗需要使用 floaty 模块。该模块提供了两种主要方法来创建悬浮窗,分别是 floaty.window()floaty.rawWindow()

1. 主要方法

  • floaty.window(layout)
    创建带有默认控制按钮的悬浮窗(包含关闭、调整大小、调整位置按键)。适合需要用户交互或调试的场景。

  • floaty.rawWindow(layout)
    创建原始悬浮窗,不包含额外控件。支持完全全屏覆盖(包括状态栏),适合制作护眼模式或自定义 UI 场景。

2. 代码示例

以下示例演示如何创建一个基础悬浮窗,并在 5 秒后自动关闭。代码已适配 Rhino 1.7.15 引擎,避免使用箭头函数。

// 文档地址 https://docs.hamibot.com/

// 创建基础悬浮窗
var w = floaty.window(
    <frame gravity="center" bg="#FF0000">
        <text id="text">悬浮文字</text>
    </frame>
);

// 设置位置(可选)
w.setPosition(500, 500);

// 5 秒后关闭悬浮窗
setTimeout(function() {
    w.close();
}, 5000);

3. 修改悬浮窗内容

脚本运行的主线程不是 UI 线程,所有对控件的修改操作必须在 UI 线程中执行,需要使用 ui.run() 包裹。

// 文档地址 https://docs.hamibot.com/

var w = floaty.window(
    <frame gravity="center" bg="#FF0000">
        <text id="text">初始文本</text>
    </frame>
);

// 在 UI 线程修改文本内容
ui.run(function() {
    w.text.setText('修改后的文本');
});

4. 注意事项

  • 权限要求:运行悬浮窗脚本前,请确保设备已授予 Hamibot“显示悬浮窗”或“出现在其他应用上层”的权限。
  • 资源释放:使用完毕后建议调用 close() 方法关闭悬浮窗,或使用 floaty.closeAll() 关闭所有悬浮窗,避免内存泄漏。
  • 布局参数layout 参数支持 XML 字符串或 View 对象,具体布局语法参考 ui 模块说明。
  • 调整控制:对于 floaty.window() 创建的窗口,可通过 setAdjustEnabled(true/false) 显示或隐藏调整大小和位置的标示。
ℹ️ 本回答由 AI 生成,内容仅供参考