递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 49|回复: 4
打印 上一主题 下一主题

[安卓] 火山安卓的悬浮窗现在有bug了吗》

[复制链接]

12

主题

46

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
跳转到指定楼层
楼主
发表于 3 小时前 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
具体内容文字不好描述,上传了一段视频劳烦大佬看一下,除了视频中说的布局问题外,编辑框也没办法正常交互了,编辑框能获取光标但不会触发键盘,不能粘贴,总结就是布局大小不正常,组件交互也不对劲。
【火山安卓悬浮窗BUG???】 https://www.bilibili.com/video/B ... a91af7a4424f71d9029
回复

使用道具 举报

11

主题

112

帖子

1078

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
1078
5#
发表于 20 分钟前 | 只看该作者
我用AI解决了这个问题,首先悬浮窗模块加入这个方法
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 方法 置输入焦点 <公开 注释 = "动态切换悬浮窗是否允许获得系统输入焦点。允许焦点时输入法可弹出,但会阻塞其他App的IME。" 注释 = "禁止焦点时其他App的输入法和手势正常,但悬浮窗内不弹出输入法。">
  3. 参数 是否允许焦点 <类型 = 逻辑型 注释 = "真=允许焦点/可弹出输入法, 假=禁止焦点/不阻塞其他App">
  4. {
  5.     @ if (@<是否允许焦点>) {
  6.     @     // 允许焦点:移除 FLAG_NOT_FOCUSABLE + 添加 FLAG_WATCH_OUTSIDE_TOUCH 以检测窗外触摸
  7.     @     m_savedFlags = params.flags & (WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
  8.     @     params.flags &= ~WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
  9.     @     params.flags |= (WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
  10.     @ } else {
  11.     @     // 禁止焦点:恢复 FLAG_NOT_FOCUSABLE + 移除 FLAG_WATCH_OUTSIDE_TOUCH
  12.     @     params.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
  13.     @     params.flags &= ~WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
  14.     @ }
  15.     更新视图 ()
  16. }
复制代码


常量里加入
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 常量 类型_允许窗口外触摸 <公开 类型 = 整数 值 = @android.view.WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
  3.         注释 = "设置悬浮窗允许接收窗口外部的触摸事件(ACTION_OUTSIDE),用于检测用户触摸悬浮窗外(桌面/其他App)时自动清除编辑框焦点。" 编辑时信息 = "0, BFFF4, 0, 0">
复制代码


然后在悬浮窗口 编辑框_组件焦点被改变 获得焦点后执行 悬浮窗口.置输入焦点 (真)
在悬浮窗口 线性布局器_被触摸 编辑框.释放焦点 () 悬浮窗口.置输入焦点 (假)

最后 悬浮窗口 = 悬浮窗口类.新建 (操作的窗口, 悬浮窗口类.类型_禁止覆盖窗口 + 悬浮窗口类.类型_允许窗口外触摸)

回复

使用道具 举报

12

主题

46

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
地板
 楼主| 发表于 半小时前 | 只看该作者
创世魂 发表于 2026-6-1 10:00
悬浮窗口类.新建(,悬浮窗口类.类型_允许获得输入焦点)

刚才测试了,加了【类型_允许获得输入焦点】是可以输入了,但是会导致整个屏幕无法触摸,比如即便是将悬浮窗的大小设置在100*100,这很明显并没有沾满整个屏幕,但整个屏幕依旧是被悬浮窗铺满,导致没有组件的地方是透明的悬浮窗,从而无法操作其他地方了
回复

使用道具 举报

12

主题

46

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
板凳
 楼主| 发表于 1 小时前 | 只看该作者
创世魂 发表于 2026-6-1 10:00
悬浮窗口类.新建(,悬浮窗口类.类型_允许获得输入焦点)

布局不正常的问题这个怎么处理
回复

使用道具 举报

497

主题

2万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
48755
QQ
沙发
发表于 1 小时前 | 只看该作者
悬浮窗口类.新建(,悬浮窗口类.类型_允许获得输入焦点)
安卓无障碍课:点击查看
接安卓类库封装,需要的联系570828305
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2026-6-1 11:54 , Processed in 0.112325 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表