Floating View 扩展
Floating View 是一个免费的悬浮视图扩展,用于将任意可见组件转换为悬浮窗口。通过该扩展,可以将组件的可见部分转移到悬浮视图中,即使用户在其他应用中操作时也能保持活跃状态。使用此功能的应用示例包括即时通讯应用等。
包名:com.jdl.FloatingView
版本:1.2
发布日期:2020年6月14日
最后更新:2020年6月28日
作者:Jarlisson
文件大小:20.2 KB
下载链接
扩展文件:
示例文件:
功能概述
扩展特性
- 悬浮窗口:将任意可见组件转换为悬浮视图
- 跨应用显示:在其他应用上层保持显示
- 灵活定位:支持自定义悬浮窗口位置
- 组件重叠:支持将一个组件重叠到另一个组件上
- 大小调整:可调整悬浮窗口的宽度和高度
- 可点击性:可设置悬浮窗口是否可点击
- 动画效果:支持显示和隐藏动画
- 移动控制:支持启用或禁用窗口移动
截图
积木示例



应用截图






函数
- SetupView 设置视图(视图组件,可点击,位置X,位置Y)
- 初始化要悬浮的组件。
- 视图组件:组件类型,要转换为悬浮视图的组件
- 可点击:布尔类型,悬浮窗口是否可点击
- 位置X:数字类型,悬浮窗口的X坐标位置
- 位置Y:数字类型,悬浮窗口的Y坐标位置
- OverlapView 重叠视图(主组件,子组件,边距)
- 将任意可见组件重叠到另一个组件上(NEW)。
- 主组件:组件类型,底部的基础组件
- 子组件:组件类型,要重叠在上面的组件
- 边距:列表类型,边距设置 [左, 上, 右, 下]
- SetPosition 设置位置(位置X,位置Y)
- 设置悬浮窗口的位置。
- 位置X:数字类型,X坐标位置
- 位置Y:数字类型,Y坐标位置
- SetSize 设置大小(宽度,高度)
- 设置悬浮窗口的大小。
- 宽度:数字类型,窗口宽度
- 高度:数字类型,窗口高度
- RemoveView 移除视图(动画)
- 移除悬浮视图。
- 动画:布尔类型,是否使用动画效果
- SetClickable 设置可点击(可点击)
- 设置悬浮窗口是否可点击。
- 可点击:布尔类型,是否可点击
- EnableMove 启用移动(启用)
- 启用或禁用悬浮窗口的移动功能。
- 启用:布尔类型,是否允许移动
- Back 返回()
- 模拟返回键操作。
属性
- PositionX 位置X
- 获取或设置悬浮窗口的X坐标位置。
- 类型:数字类型
- 默认值:0
- PositionY 位置Y
- 获取或设置悬浮窗口的Y坐标位置。
- 类型:数字类型
- 默认值:0
- Width 宽度
- 获取或设置悬浮窗口的宽度。
- 类型:数字类型
- 默认值:自动
- Height 高度
- 获取或设置悬浮窗口的高度。
- 类型:数字类型
- 默认值:自动
- IsViewActive 视图是否激活
- 获取悬浮视图是否处于激活状态。
- 类型:布尔类型
- 只读:是
应用场景
1. 聊天应用悬浮窗
创建类似 Facebook Messenger 的悬浮聊天窗口:
当 Button1.点击
调用 FloatingView1.SetView 视图组件为 HorizontalArrangement1 可点击为true 位置X为100 位置Y为500
2. 音乐播放器悬浮控制
悬浮音乐控制面板:
当 音乐播放器.初始化
调用 FloatingView1.SetView 视图组件为 PlayerControl 可点击为true 位置X为50 位置Y为1000
调用 FloatingView1.SetSize 宽度为400 高度为150
3. 视频播放悬浮窗
悬浮视频播放器:
当 Button_悬浮播放.点击
调用 FloatingView1.SetView 视图组件为 VideoPlayer 可点击为true 位置X为200 位置Y为300
调用 FloatingView1.EnableMove 启用为true
4. 快捷工具悬浮窗
创建快捷操作悬浮按钮:
当 Screen1.初始化
调用 FloatingView1.SetView 视图组件为 QuickTools 可点击为true 位置X为屏幕宽度-150 位置Y为200
调用 FloatingView1.SetClickable 可点击为true
5. 通知悬浮窗
悬浮通知显示:
当 收到通知
调用 FloatingView1.SetView 视图组件为 NotificationLayout 可点击为true 位置X为50 位置Y为100
等待 5000 毫秒
调用 FloatingView1.RemoveView 动画为true
6. 组件重叠布局
将两个组件重叠显示:
当 Screen1.初始化
调用 FloatingView1.OverlapView 主组件为 BackgroundImage 子组件为 OverlayIcon 边距为{10, 10, 10, 10}
使用说明
基本使用步骤
- 添加扩展:将 FloatingView 扩展添加到项目中
- 设计组件:创建要悬浮的布局组件(如 HorizontalArrangement)
- 设置悬浮:使用 SetupView 方法设置悬浮视图
- 配置参数:设置位置、大小、可点击等参数
- 测试运行:在设备上测试悬浮功能
重要提示
- 权限要求:需要在应用设置中授予悬浮窗权限
- 兼容性:不同 Android 版本的悬浮窗行为可能不同
- 内存管理:及时移除不需要的悬浮视图
- 用户体验:提供显示/隐藏悬浮窗的选项
性能优化建议
- 简洁设计:悬浮组件应保持简洁,避免过于复杂
- 适时移除:不需要时及时移除悬浮视图
- 避免过多:不要同时创建多个悬浮窗口
- 合理大小:设置合适的窗口大小,避免遮挡主要内容
技术说明
悬浮窗口原理
- WindowManager:使用 Android 的 WindowManager 系统服务
- 布局参数:通过 LayoutParams 设置窗口属性
- 权限系统:需要 SYSTEM_ALERT_WINDOW 权限
边距设置
重叠视图的边距列表格式:
- 索引 0:左边距
- 索引 1:上边距
- 索引 2:右边距
- 索引 3:下边距
动画效果
移除视图时支持平滑的淡出动画,提升用户体验。
常见问题
Q: 悬浮窗不显示怎么办?
A: 检查应用是否获得了悬浮窗权限,在设置中手动授予。
Q: 悬浮窗被系统杀死怎么办?
A: 部分厂商的系统会限制悬浮窗,需要在电池优化设置中排除应用。
Q: 可以悬浮多个组件吗?
A: 可以创建多个 FloatingView 实例,但建议不要同时显示太多悬浮窗。
Q: 悬浮窗可以拖动吗?
A: 使用 EnableMove(true) 方法启用拖动功能。
Q: 如何自定义悬浮窗样式?
A: 在设计器中自定义要悬浮的布局组件的外观。
版本信息
- 当前版本:1.2
- 发布日期:2020年6月14日
- 最后更新:2020年6月28日
- 兼容性:Kodular、App Inventor 2
- 权限要求:SYSTEM_ALERT_WINDOW(悬浮窗权限)
开源信息
GitHub 仓库:https://github.com/jarlisson2/FloatingViewAIX
版权信息
本文档基于 Kodular Community 论坛帖子整理,原作者为 Jarlisson。
原始链接:https://community.kodular.io/t/floating-view-float-your-component-free/68308
文档翻译和整理:AI2中文网
最后更新:2024年12月29日
扫码添加客服咨询