返回项目
Android

Compose Float Window

Compose 悬浮窗

ComposeFloatWindow 让你直接在 Android 悬浮窗里写 @Composable,无需自定义 View。它完整实现 INITIALIZED → DESTROYED 生命周期状态机,自己持有 ViewModelStore / SavedStateRegistry / OnBackPressedDispatcher,不污染宿主 Activity。

Android 8+

能力

  • Compose 原生,无需自定义 View
  • 标准 Lifecycle,可与 viewModel()、BackHandler 协作
  • 封装 SYSTEM_ALERT_WINDOW 权限检测
  • Recomposer 自管理,避免协程泄漏

快速上手

FloatWindow.kt
val floatWindow = ComposeFloatWindow(context).apply {
    setContent {
        Card(modifier = Modifier.padding(16.dp)) {
            Text("你好,悬浮窗!")
        }
    }
}

if (floatWindow.isAvailable()) {
    floatWindow.show()
}