-
Notifications
You must be signed in to change notification settings - Fork 188
API 速查
petterp edited this page Aug 30, 2026
·
1 revision
本页汇总 3.0 公开 API 的日常用法:FxControl 的控制方法、FxListener 的回调、以及 FloatingX 注册表。
配置项(锚点 / 手势 / 吸附 / 动画等)见 配置项。
install / create 的返回值,也是之后操作浮窗的唯一入口:
control.show(); control.hide(); control.cancel() // cancel() 幂等;cancel 之后 show/hide/moveTo/moveBy 抛 IllegalStateException
control.moveTo(100f, 200f); control.moveTo(100f, 200f, animate = true)
control.moveBy(-20f, 0f); control.moveBy(-20f, 0f, animate = true)
control.update { anchor(FxGravity.BOTTOM_END); gesture { drag = FxDrag.DISABLED } } // 局部改配置
control.setContent(FxContent.layout(R.layout.fx_card)) // 整体换内容
control.updateContent { it.setText(R.id.tvTitle, "Hi") } // 改内容里的 view(show 之前也可用)
control.addListener(listener); control.removeListener(listener)
control.addFeature(feature); control.removeFeature(feature)
control.tag; control.state; control.isShowing
control.position // 内容左上角的屏幕坐标,三种 host 语义一致
control.anchor; control.config; control.host; control.contentView; control.holder
control.attachedActivity // floatingx-app 扩展:当前挂在哪个 Activity 上FxState:INSTALLED(已创建,容器未挂载)→ ATTACHED(已挂载但不可见)→ SHOWN(可见),
终态 CANCELLED。
control.update {} 用的就是 install 时的那套 DSL,未显式设置的项沿用旧值,详见 配置项;
control.attachedActivity 只在 App 级浮窗上有意义,见 App 级全局浮窗。
监听器归 control 所有,addListener / removeListener 随时可调:
onAttach / onDetach / onShow / onHide / onCancel
onClick(control, view) / onLongClick(control, view)
onDragStart(control) / onDrag(control, x, y) / onDragEnd(control, x, y) // x/y 相对容器
onPositionChanged(control, anchor) // 锚点提交后,可判断贴在哪条边全局浮窗按 tag 注册;局部浮窗(局部浮窗)不进注册表:
FloatingX.install(tag) { … } // 安装并注册;同 tag 已存在会先 cancel 旧的
FloatingX.create(tag) { … } // 创建但不注册,生命周期归调用方(局部浮窗)
FloatingX.control(tag) // 取不到抛异常
FloatingX.controlOrNull(tag)
FloatingX.controls() // 当前所有全局浮窗的快照
FloatingX.isInstalled(tag)
FloatingX.uninstall(tag) / FloatingX.uninstallAll()tag 缺省为 FloatingX.DEFAULT_TAG。局部浮窗的 tag 只用于日志与位置持久化的存储键(留空则不持久化)。