java - 如何使覆盖层接收触摸事件而不消耗其他应用程序的触摸?

标签 java android kotlin

我目前正在尝试制作一个类似于 Facebook Messenger 聊天头的实用程序叠加层,您可以在其中移动屏幕上的 View 。单击 View 时,它会展开为更复杂的布局。但是,问题是,如果我将 LayoutParams 标志设置为 WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE ,则后面的应用程序会接收触摸事件,而我的叠加层根本不会接收任何触摸事件。但是,如果我删除该标志,覆盖层会接收触摸,但会阻止触摸。这意味着我什至无法打开应用程序抽屉,因为触摸被阻止。

我使用全屏透明 Activity 作为背景,这样我就可以在它周围移动我的覆盖“小部件”。

有什么办法可以让它不阻止触摸事件。即使我没有将其设置为全屏,只要我没有 FLAG_NOT_TOUCHABLE 标志,我的覆盖层就会完全阻止所有屏幕触摸。

最佳答案

请删除此标志

WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE 

带有此标志

WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE

查看此链接https://medium.com/@kevalpatel2106/create-chat-heads-like-facebook-messenger-32f7f1a62064

关于java - 如何使覆盖层接收触摸事件而不消耗其他应用程序的触摸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58057174/

相关文章:

kotlin - 我不能将Kotlin用于Serenity-bdd

javascript - 从Kotlin访问js变量

android - 使用协程对任务进行排队

Java核心: data type for variable of changing value

JavaFX 圆形镂空

java - 配置 MongoDB 写入关注超时?

android - 从 Android TV 中的 BrowseFragment 中移除上边距

java - 数组的 k 大小的相等排列数

java - 导入 android.content.Context 后无法解析上下文;还

Android 4.0内核源代码?