Floating View 扩展:悬浮视图扩展,将组件转换为悬浮窗口

« 返回首页

Floating View 扩展

Floating View 是一个免费的悬浮视图扩展,用于将任意可见组件转换为悬浮窗口。通过该扩展,可以将组件的可见部分转移到悬浮视图中,即使用户在其他应用中操作时也能保持活跃状态。使用此功能的应用示例包括即时通讯应用等。

包名:com.jdl.FloatingView

版本:1.2

发布日期:2020年6月14日

最后更新:2020年6月28日

作者:Jarlisson

文件大小:20.2 KB

下载链接

扩展文件

com.jdl.FloatingView.aix

示例文件

FloatingView.aia

功能概述

扩展特性

  • 悬浮窗口:将任意可见组件转换为悬浮视图
  • 跨应用显示:在其他应用上层保持显示
  • 灵活定位:支持自定义悬浮窗口位置
  • 组件重叠:支持将一个组件重叠到另一个组件上
  • 大小调整:可调整悬浮窗口的宽度和高度
  • 可点击性:可设置悬浮窗口是否可点击
  • 动画效果:支持显示和隐藏动画
  • 移动控制:支持启用或禁用窗口移动

截图

积木示例

Setup View

Overlap View

Block 1

应用截图

截图1

截图2

截图3

截图4

截图5

截图6

函数

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}

使用说明

基本使用步骤

  1. 添加扩展:将 FloatingView 扩展添加到项目中
  2. 设计组件:创建要悬浮的布局组件(如 HorizontalArrangement)
  3. 设置悬浮:使用 SetupView 方法设置悬浮视图
  4. 配置参数:设置位置、大小、可点击等参数
  5. 测试运行:在设备上测试悬浮功能

重要提示

  • 权限要求:需要在应用设置中授予悬浮窗权限
  • 兼容性:不同 Android 版本的悬浮窗行为可能不同
  • 内存管理:及时移除不需要的悬浮视图
  • 用户体验:提供显示/隐藏悬浮窗的选项

性能优化建议

  1. 简洁设计:悬浮组件应保持简洁,避免过于复杂
  2. 适时移除:不需要时及时移除悬浮视图
  3. 避免过多:不要同时创建多个悬浮窗口
  4. 合理大小:设置合适的窗口大小,避免遮挡主要内容

技术说明

悬浮窗口原理

  • 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日

文档反馈