-
Notifications
You must be signed in to change notification settings - Fork 188
Demo 说明
petterp edited this page Aug 30, 2026
·
1 revision
仓库里的 app 模块是一个完整的示例与回归工程:
每种能力一页、每个历史 issue 一页,装上就能逐条对着点。
git clone https://github.com/Petterpx/FloatingX.git
cd FloatingX
./gradlew app:installDebug # 安装 demo
adb logcat | grep "Fx-" # 看运行日志日志只有在配置里调过 enableLog(tag) 才会有(demo 用的是 Fx-demo),不调用则完全静默。
demo 的 Activity 一律不配 configChanges,旋转走 recreate,方便验证「重建后浮窗还在」。
| 页面 | 内容 |
|---|---|
AppHostActivity |
App 级全局浮窗:锚点 / margin / 越界 / safeArea / 吸附 / 内容 / 动画 / attachedActivity
|
SystemHostActivity |
系统浮窗:三种权限策略、layoutParams 定制、retryPermission、键盘 / 返回键、前台 Service 安装 |
ScopeHostActivity |
局部浮窗三种宿主:ViewGroup / Activity / Fragment |
GestureActivity |
拖动模式 / 起拖区域 / 子 view 优先级 / 透传 / 回调日志 |
LayoutActivity |
锚点 / 越界 / 吸附 / 内容尺寸 / 位置持久化 |
MultiWindowActivity |
按 tag 管理多浮窗、controls()、同 tag 重装 |
ModalActivity |
modal 拦截外部触摸、点外部自动 hide、Dialog 之上的浮窗 |
ComposeActivity / ComposeSecondActivity
|
Compose 浮窗:viewModel() / rememberSaveable / stateFlow / positionFlow / 跨页 |
SecondActivity |
换页观察:容器被静默挪到新页,状态与位置都不重来 |
BlackActivity |
黑名单页(浮窗消失) |
ImmersedActivity |
沉浸页(edge-to-edge + 无状态栏),验证 safeArea |
按 issue 编号命名,每页对应一个 3.0 修掉的历史问题,对照见 Issue 覆盖矩阵。
| 页面 | issue |
|---|---|
Issue187Activity |
#187 内容尺寸变化时锚点不动 |
Issue210Activity |
#210 Compose 浮窗跨页存活 |
Issue221Activity |
#221 黑名单命中子类 |
Issue240Activity |
#240 越界不被裁剪 |
Issue244Activity |
#244 Fragment 内浮窗 |
全局浮窗集中在 demo/DemoWindows.kt 安装,页面按钮只操作 FxControl——
所以想抄一份可用的 install 配置,看这个文件就够了。
Java 样例在 demo/java/JavaDemo.java:主页「Java」分组里的三个按钮对应它的三个方法,
用 Java Builder 把 App 级 / 系统级 / 局部三种浮窗各写一遍,验证公开 API 的 Java 友好度。
上手请看 快速开始,历史 issue 对照见 Issue 覆盖矩阵,返回 Home。