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

相关推荐
北漂Zachary3 小时前
四大编程语言终极对比
android·java·php·laravel
学习使我健康7 小时前
Android App 启动原理
android·android studio
TechMix8 小时前
【性能工具】atrace、systrace、perfetto抓取的trace文件有何不同?
android·性能优化
张小潇8 小时前
AOSP15 WMS/AMS系统开发 - 窗口层级源码分析
android·前端
努力努力再努力wz10 小时前
【MySQL入门系列】掌握表数据的 CRUD:DML 核心语法与执行逻辑解析
android·开发语言·数据结构·数据库·c++·b树·mysql
zh_xuan13 小时前
Android gradle任务
android·gradle构建
Grackers13 小时前
Android Perfetto 系列 10:Binder 调度与锁竞争
android·binder
李白你好13 小时前
Android 自动化渗透测试指令生成
android·自动化
CeshirenTester14 小时前
Claude Code 不只是会写代码:这 10 个 Skills,才是效率分水岭
android·开发语言·kotlin
朝星16 小时前
Android开发[2]:Flow
android·kotlin