回答
要实现悬浮窗打开后只有两个可点击的按钮,需要在布局文件中定义两个按钮控件,并分别为它们绑定点击事件监听器。同时,需要确保悬浮窗本身处于可触摸状态。
下面是一个包含两个可点击按钮的悬浮窗完整示例代码:
// 文档地址 https://docs.hamibot.com/
var w = floaty.window(
<vertical>
<button id="btn1" text="按钮 1" w="auto" h="auto"/>
<button id="btn2" text="按钮 2" w="auto" h="auto"/>
</vertical>
);
// 绑定第一个按钮的点击事件
w.btn1.click(function(){
toast("按钮 1 被点击");
// 在这里编写按钮 1 的逻辑
});
// 绑定第二个按钮的点击事件
w.btn2.click(function(){
toast("按钮 2 被点击");
// 在这里编写按钮 2 的逻辑
});
// 保持脚本运行,防止悬浮窗自动关闭
setInterval(function(){}, 1000);
关键配置说明
- 布局定义:在
floaty.window的 XML 布局中,只定义两个<button>元素,这样界面上就只会显示这两个按钮。 - 事件绑定:必须通过
w.id.click(function(){...})为每个按钮绑定点击事件,否则按钮可能无响应。 - 保持运行:使用
setInterval保持脚本主线程运行,否则脚本执行完毕后悬浮窗会自动关闭。 - 触摸属性:
- 如果使用
floaty.window,默认是可触摸的。 - 如果使用
floaty.rawWindow,需要确保调用了w.setTouchable(true)。如果设置为false,悬浮窗上的所有点击事件都会传递到下层,导致按钮无法点击。
- 如果使用
常见问题排查
如果定义了多个按钮但只有两个能点击,请检查以下几点:
- 事件监听:确认所有需要点击的按钮都编写了
.click()监听代码。 - 触摸开关:检查代码中是否调用了
w.setTouchable(false),这会禁用整个悬浮窗的触摸响应。 - 控件属性:确保按钮没有被其他布局属性遮挡,且
width和height设置合理。
ℹ️ 本回答由 AI 生成,内容仅供参考