floaty 模块提供了悬浮窗的相关函数,可以在屏幕上显示自定义悬浮窗,控制悬浮窗大小、位置等。
悬浮窗在脚本停止运行时会自动关闭,因此,要保持悬浮窗不被关闭,可以用一个空的 setInterval 来实现,例如:
[4.2.17 新增]
返回当前应用是否有悬浮窗权限。(不会触发请求权限操作)
[4.2.17 新增]
跳转到系统的悬浮窗权限请求界面。
layout
{xml} | {View} 悬浮窗界面的 XML 或者 View指定悬浮窗的布局,创建并显示一个悬浮窗,返回一个FloatyWindow对象。
该悬浮窗自带关闭、调整大小、调整位置按键,可根据需要调用setAdjustEnabled()
函数来显示或隐藏。
其中 layout 参数可以是 xml 布局或者一个 View,更多信息参见 ui 模块的说明。
例子:
这段代码运行后将会在屏幕上显示悬浮文字,并在两秒后消失。
另外,因为脚本运行的线程不是 UI 线程,而所有对控件的修改操作需要在 UI 线程执行,此时需要用ui.run
,例如:
有关返回的FloatyWindow
对象的说明,参见下面的FloatyWindow
章节。
layout
{xml} | {View} 悬浮窗界面的 XML 或者 View指定悬浮窗的布局,创建并显示一个原始悬浮窗,返回一个FloatyRawWindow对象。
与floaty.window()
函数不同的是,该悬浮窗不会增加任何额外设施(例如调整大小、位置按钮),您可以根据自己需要编写任何布局。
而且,该悬浮窗支持完全全屏,可以覆盖状态栏,因此可以做护眼模式之类的应用。
这段代码运行后将会在屏幕上显示悬浮文字,并在两秒后消失。
有关返回的FloatyRawWindow
对象的说明,参见下面的FloatyRawWindow
章节。
关闭所有本脚本的悬浮窗。
悬浮窗对象,可通过FloatyWindow.{id}
获取悬浮窗界面上的元素。例如,悬浮窗 window 上一个控件的 id 为 aaa, 那么window.aaa
即可获取到该控件,类似于 ui。
enabled
{boolean} 是否启用悬浮窗调整 (大小、位置)如果 enabled 为 true,则在悬浮窗左上角、右上角显示可供位置、大小调整的标示,就像控制台一样; 如果 enabled 为 false,则隐藏上述标示。
x
{number} xx
{number} y设置悬浮窗位置。
返回悬浮窗位置的 X 坐标。
返回悬浮窗位置的 Y 坐标。
width
{number} 宽度height
{number} 高度设置悬浮窗宽高。
返回悬浮窗宽度。
返回悬浮窗高度。
关闭悬浮窗。如果悬浮窗已经是关闭状态,则此函数将不执行任何操作。
被关闭后的悬浮窗不能再显示。
使悬浮窗被关闭时自动结束脚本运行。
原始悬浮窗对象,可通过window.{id}
获取悬浮窗界面上的元素。例如,悬浮窗 window 上一个控件的 id 为 aaa, 那么window.aaa
即可获取到该控件,类似于 ui。
touchable
{Boolean} 是否可触摸设置悬浮窗是否可触摸,如果为 true, 则悬浮窗将接收到触摸、点击等事件并且无法继续传递到悬浮窗下面;如果为 false, 悬浮窗上的触摸、点击等事件将被直接传递到悬浮窗下面。处于安全考虑,被悬浮窗接收的触摸事情无法再继续传递到下层。
可以用此特性来制作护眼模式脚本。
x
{number} xx
{number} y设置悬浮窗位置。
返回悬浮窗位置的 X 坐标。
返回悬浮窗位置的 Y 坐标。
width
{number} 宽度height
{number} 高度设置悬浮窗宽高。
特别地,如果设置为 -1,则为占满全屏;设置为 -2 则为根据悬浮窗内容大小而定。例如:
返回悬浮窗宽度。
返回悬浮窗高度。
关闭悬浮窗。如果悬浮窗已经是关闭状态,则此函数将不执行任何操作。
被关闭后的悬浮窗不能再显示。
使悬浮窗被关闭时自动结束脚本运行。