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

[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() }


http://www.kler.cn/a/560423.html

相关文章:

  • 芯谷 D1517AT:多媒体音响系统的音频功率放大利器
  • uniapp h5端和app端 使用 turn.js
  • AI赋能游戏前端:效率革命与沉浸式体验的未来
  • 科技改变生活:未来趋势与应用解析
  • python类型转换深浅拷贝
  • w227springboot旅游管理系统设计与实现
  • vue3 下载文件 responseType-blob 或者 a标签
  • 软件测试的基础入门(一)
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-split_dota.py
  • c3p0、Druid连接池+工具类 Apache-DbUtils (详解!!!)
  • Git操作整体流程
  • 设计模式 之 工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)(C++)
  • 调查报告:DLL项目运行时库设置与依赖兼容性分析
  • Qt 多线程误区:QThread 任务未正确执行及收尾回调未触发的原因分析
  • 云计算该如何实现高效数据存储和处理?
  • 【目标检测】目标检测中的数据增强终极指南:从原理到实战,用Python解锁模型性能提升密码(附YOLOv5实战代码)
  • PV和UV的区别
  • UE5从入门到精通之多人游戏编程常用函数
  • Qt中C++与QML交互从原理、方法与实践陷阱深度解析
  • 系统架构分析:软件需求工程部分知识一览概括