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

相关推荐
q***33371 小时前
SpringMVC新版本踩坑[已解决]
android·前端·后端
F***74171 小时前
数据库课设---酒店管理系统(MySQL、VBNet)
android·数据库·mysql
踢球的打工仔1 小时前
PHP面向对象(5)
android·java·php
zhaoyufei13312 小时前
Android13删除Taskbar
android
6***B4814 小时前
存储过程(SQL)
android·数据库·sql
学困昇15 小时前
C++中的异常
android·java·c++
Jerry16 小时前
问题记录 - Android IdleHandler 没有执行
android
没有了遇见16 小时前
Android ButterKnife Android 35情况下 适配 Gradle 8.+
android
方白羽16 小时前
Android多层嵌套RecyclerView滚动
android·java·kotlin
菜就多学18 小时前
SurfaceControlViewHost 实现跨进程UI渲染
android·设计