如果使用Dialog展示的View挡住了下面的元素,下面的元素无法点击,你可以尝试以下几种方法解决问题:

  1. 使用WindowManager.LayoutParams的FLAG_NOT_TOUCH_MODAL标志,确保Dialog不会拦截触摸事件。在创建Dialog时,使用以下代码设置LayoutParams:
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
  1. 如果你需要在Dialog外部点击时关闭Dialog,可以尝试使用setCanceledOnTouchOutside(true)方法设置Dialog的点击外部区域可关闭:
dialog.setCanceledOnTouchOutside(true);
  1. 如果上述方法无效,可以考虑使用PopupWindow代替Dialog。PopupWindow可以在需要展示的位置弹出一个View,并且不会拦截下面元素的点击事件。

希望以上方法对你有所帮助

android开发: 我用WindowManageradd直接展示的View就算挡住了下面的元素用无障碍服务模拟点击也是可以正常点击的! 但是用Dialog展示的View挡住了下面的元素下面的元素点不到! 怎么办

原文地址: https://www.cveoy.top/t/topic/iE8w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录