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说他会影响触摸事件,终于真相大白了!!!!

相关推荐
用户20187928316733 分钟前
Android黑夜白天模式切换原理分析
android
芦半山1 小时前
「幽灵调用」背后的真相:一个隐藏多年的Android原生Bug
android
卡尔特斯1 小时前
Android Kotlin 项目代理配置【详细步骤(可选)】
android·java·kotlin
ace望世界1 小时前
安卓的ViewModel
android
ace望世界1 小时前
kotlin的委托
android
CYRUS_STUDIO4 小时前
一文搞懂 Frida Stalker:对抗 OLLVM 的算法还原利器
android·逆向·llvm
zcychong4 小时前
ArrayMap、SparseArray和HashMap有什么区别?该如何选择?
android·面试
CYRUS_STUDIO4 小时前
Frida Stalker Trace 实战:指令级跟踪与寄存器变化监控全解析
android·逆向
ace望世界9 小时前
android的Parcelable
android
顾林海9 小时前
Android编译插桩之AspectJ:让代码像特工一样悄悄干活
android·面试·性能优化