当前位置: 首页 > news >正文

[Android]DialogLifeCycle禁止点击背景关闭弹窗

在 Kotlin 中,可以通过设置 Dialog 的 setCanceledOnTouchOutside 方法来避免点击弹窗之外的背景而关闭弹窗。您可以在 DialogLifeCycle 的 show 方法中设置这一属性。

fun Context.dialogCustom(layout: Int, style: Int = R.style.dialogCenter, onInit: DialogModel.() -> Unit) = object : DialogLifeCycle(this, style) {
    override fun show() {
        LayoutInflater.from(this@dialogCustom).inflate(layout, null).let {
            setContentView(it)
            DialogModel(it, this).onInit()
        }
        window?.let {
            it.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
            it.setLayout(resources.displayMetrics.widthPixels - 40.dp, ViewGroup.LayoutParams.WRAP_CONTENT)
        }
        setCanceledOnTouchOutside(false) // 禁止点击背景关闭弹窗
        super.show()
    }
}.apply { show() }

相关文章:

  • 0099__Visual Studio 引入外部静态库与动态库
  • MySQL 插入更新语句(insert…on duplicate key update语句 )
  • VMware安装Centos 9虚拟机+设置共享文件夹+远程登录
  • 跳跃游戏(力扣55)
  • Python爬虫基础文件操作
  • 【OS安装与使用】part6-ubuntu 22.04+CUDA 12.4运行MARL算法(多智能体强化学习)
  • python学习
  • Jenkins整合Jmeter实现接口自动化测试
  • nacos编写瀚高数据库插件
  • 【Linux专栏】rsync 同步文件时自动创建目录
  • VMWare安装Debian操作系统
  • Could not download npm for node v14.21.3(nvm无法下载节点v14.21.3的npm)
  • HTTP 常见状态码技术解析(应用层)
  • Blender小技巧和注意事项
  • 如何在 Linux 内核中实现自定义协议族并使用 Socket 通信
  • c++ std::vector使用笔记
  • 【联盛德 W803-Pico 试用】简介、工程测试
  • 安装可视化jar包部署平台JarManage
  • 【算法系列】leetcode1419 数青蛙 --模拟
  • ROS2下编写package利用orbbec相机进行yolov8实时目标检测
  • 中国驻美大使:远离故土的子弹库帛书正随民族复兴踏上归途
  • 跨越三十年友情,61岁余隆和60岁齐默尔曼在上海再度合作
  • 病重老人取钱在银行门口去世,家属:已协商一致
  • 美联储主席:供应冲击或更频繁,将重新评估货币政策方法中的通胀和就业因素
  • 马上评|中学生被操场地面烫伤,谁的“大课间”?
  • 思想史家陈谷嘉逝世,曾为岳麓书院当代复兴奠定重要基础