用JetPack Compose帮我写一个悬浮窗,此悬浮窗可以显示在其他应用上层
时间: 2023-05-14 10:05:02 浏览: 323
好的,以下是一个简单的 JetPack Compose 悬浮窗示例代码:
```kotlin
@Composable
fun FloatingWindow() {
val windowManager = LocalWindowManager.current
val layoutParams = remember { WindowManager.LayoutParams() }
// 设置悬浮窗的宽高和类型
layoutParams.width = 200.dp.toPx()
layoutParams.height = 200.dp.toPx()
layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
// 设置悬浮窗的位置
layoutParams.x = 0
layoutParams.y = 0
// 创建一个 Surface 用于绘制悬浮窗内容
val surface = remember { Surface() }
// 将 Surface 添加到悬浮窗中
DisposableEffect(Unit) {
val view = surface.view
windowManager.addView(view, layoutParams)
onDispose {
windowManager.removeView(view)
}
}
// 绘制悬浮窗内容
Box(
Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text("Hello, World!")
}
}
```
你可以将这个 Composable 函数放到你的应用中,然后在需要显示悬浮窗的地方调用它即可。注意,由于悬浮窗需要显示在其他应用上层,因此需要申请 SYSTEM_ALERT_WINDOW 权限。