安卓编程问题。怎么让悬浮窗中的view不拦截触摸事件,并将触摸事件传递给手机桌面?

view在WindowManager中,WM已经设置成FLAG_NOT_TOUCH_MODAL,WM已经没问题了,那么怎么设置view的属性,让该view将触摸事件传递给... view在WindowManager中,WM已经设置成FLAG_NOT_TOUCH_MODAL,WM已经没问题了,那么怎么设置view的属性,让该view将触摸事件传递给被view遮挡的地方?(比如说:view被触摸点击了,但是view不拦截触摸事件,该事件传递给了被view遮挡的手机桌面)

麻烦各位直接上代码,你可是程序员啊!
展开
 我来答
娃犀利go
2018-12-11
知道答主
回答量:11
采纳率:0%
帮助的人:2.3万
展开全部
可以这样。比如说你想传递给被遮住的View,那么遮住的View肯定会依附在某个Activity上,那就调用:
event.setLocation(event.getRawX(), event.getRawY());
((Activity) getContext()).dispatchTouchEvent(event);
前提是,你创建这个悬浮窗View的时候,是用的那个你想传递的Activity的Context来创建的。
kz...m@163.com
2017-11-17 · 超过38用户采纳过TA的回答
知道答主
回答量:97
采纳率:62%
帮助的人:9.9万
展开全部
Activity 不是父类视图是没有onInterceptTouchEvent这个回掉方法的Android里面只有可以作为双亲的视图才会有onInterceptTouchEvent意思是阻止子事件向子视图传递,如果你是想截获Touch事件的话可以重写Activity的dispatchTouchEvent,这个是表层的Touch的第一入口
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清宵幽燕
2019-01-10
知道答主
回答量:31
采纳率:0%
帮助的人:6.2万
展开全部
虽然回答的有点晚,还是回答给后来者看吧:设置flag为不可点击就可以点击穿透到桌面了,params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vice
2018-03-07
知道答主
回答量:1
采纳率:0%
帮助的人:882
展开全部
大哥解决了吗,我也碰到了这个问题,快崩溃了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
有具体的也
2019-03-16
知道答主
回答量:1
采纳率:0%
帮助的人:752
展开全部
正巧我也是查百度,搜到这个问题,然后被一楼的同学点悟了,给后来者看看,我自己试过能行哦。

设置layoutParams的flag,记得是两个啊。如下。

layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式