Android Dialog setCanceledOnTouchOutside失效,点击dialog外面不消失

前言:有一个需求需要点击dialog外面要消失,本来以为很简单结果设置了一直未生效

复制代码
setCanceledOnTouchOutside(true);

问了半天chat-gpt4结果给的答案都不明显

查看代码发现设置了style,于是尝试去除这个style,结果点击setCanceledOnTouchOutside(true);生效了

复制代码
    <style name="LionCommonDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:background">@android:color/transparent</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:backgroundDimAmount">0.5</item>
    </style>

经过排比法,发现是<item name="android:windowIsTranslucent">true</item>导致的

Chatgpt说他会影响触摸事件,终于真相大白了!!!!

相关推荐
梦幻通灵2 小时前
Mysql字段判空实用技巧
android·数据库·mysql
龘龍龙4 小时前
Python基础(九)
android·开发语言·python
gjc5925 小时前
MySQL隐蔽 BUG:组合条件查询无故返回空集?深度排查与规避方案
android·数据库·mysql·bug
梨落秋霜5 小时前
Python入门篇【元组】
android·数据库·python
zh_xuan5 小时前
kotlin定义函数和变量
android·开发语言·kotlin
Digitally7 小时前
Android 上的联系人备份和恢复:5 种可靠且方便的方法
android
默|笙8 小时前
【Linux】进程控制(3)进程程序替换
android·linux·运维
国家二级编程爱好者8 小时前
Android Lottie使用,如何自定义LottieView?
android·前端
bst@微胖子8 小时前
CrewAI+FastAPI实现营销战略协助智能体项目
android·数据库·fastapi
子林Android8 小时前
AndroidStudio修改.android、.gradle、.AndroidStudio路径,释放C盘空间
android·android studio