当前位置: 首页 > 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的值就可以了

相关文章:

  • 学习笔记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++面试] 初始化相关面试点深究
  • godaddy上传网站/成都seo专家
  • 雕塑网站模板/搜索引擎技术基础
  • 网站开发与建设课程/适合交换友情链接的是
  • 手机网站弹出提示框/品牌营销策划方案范文
  • python为什么叫爬虫/化工seo顾问
  • 成都工程网站建设/seo技术好的培训机构