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

popupwindow拦截返回点击

目的:弹窗只有点击按钮可以关闭。

前提:弹窗内有输入框

试了网上的一些方法

  • 设置弹窗焦点 setFocusable(false) (会导致软键盘无法显示)
  • 重写 onBackPressed 方法 (不会走这里)
  • 为 popupwindow 设置 onKeyListener 监听 (不会走这里)

最终的解决方法:继承 PopupWindow 并重写 dismiss 方法

public class NonDismissPopupWindow extends PopupWindow {
    public NonDismissPopupWindow(View contentView, int width, int height) {
        super(contentView, width, height, true);
    }

    private boolean isDisMiss = false;

    public void setIsDisMiss(boolean isDisMiss){
        this.isDisMiss = isDisMiss;
    }

    @Override
    public void dismiss() {
        // 空实现,阻止默认关闭行为
        // 或者通过条件控制是否关闭
        if(isDisMiss){
            super.dismiss();
        }
    }
}

手动关闭前改下 isDisMiss的值就可以了

http://www.dtcms.com/a/121117.html

相关文章:

  • 学习笔记083——Java Stream API
  • 第七天 开始Unity Shader的学习之Unity中的基础光照之高光反射光照模型
  • S7-1200 PLC热电偶和热电阻模拟量模块
  • java基础-修饰符
  • Jakarta EE 11发布:云原生Java企业应用的新标准
  • Android Studio Narwhal | 2025.1.1新功能
  • Python3笔记之号称替代pip的uv包管理器
  • 01.02、判定是否互为字符重排
  • H3C的MSTP+VRRP高可靠性组网技术(MSTP单域)
  • Adam为什么能加速收敛和自适应学习率?
  • 2025.04.05-美团春招第四题
  • 【大数据生态】Hive的metadata服务未开启
  • 一种单脉冲雷达多通道解卷积前视成像方法【论文阅读】
  • DDoS防御与流量优化
  • 机器学习-线性回归模型
  • JdbcTemplate基本使用
  • [Bond的杂货铺] CKS 证书也到货咯
  • Python标准库json完全指南:高效处理JSON数据
  • 动态规划——两个数组的dp问题
  • [C++面试] 初始化相关面试点深究
  • macos下 ragflow二次开发环境搭建
  • PIXOR:基于LiDAR的3D检测模型解析
  • Skyline配置指南-微信小程序
  • 【Unity网络编程知识】C#的 Http相关类学习
  • 阿里云原生AI网关Higress:架构解析与应用实践
  • OpenCV——图像融合
  • 2025 年陕西消防设施操作员考试攻略:历史文化名城的消防传承与创新​
  • 基于FreeRTOS和LVGL的多功能低功耗智能手表
  • 2024 蓝桥杯 Java 研究生组
  • 基于STM32与应变片的协作机械臂力反馈控制系统设计与实现---5.2 工业机械臂系统性能测试全方案(专业工程级)