Activity使用Dialog样式导致点击空白处自动关闭的问题

2023-11-15

将Activity设置成窗口的样式实现Dialog或者Popupwindow效果在开发中是很常用的一种方式,在AndroidMenifest.xml中将需要设置的Activity增加android:theme="@android:style/Theme.Dialog"属性即可。但是窗口化的Activity有个问题就是:点击窗口空白处Activity会finish。如何避免这个问题呢,办法如下:

一、如果API Level>=11有两种方式:
1、
res\values\styles.xml
<resources>
    <style name="Theme.SoundRecorder" parent="@android:style/Theme.Holo.DialogWhenLarge">
        <item name="android:windowCloseOnTouchOutside">false</item>
    </style>
</resources>


2、
YourActivity.this.setFinishOnTouchOutside(false);

二、如果API Level<11
@Override
	public boolean onTouchEvent(MotionEvent event) {
		if (event.getAction() == MotionEvent.ACTION_DOWN && isOutOfBounds(this, event)) {
			return true;
		}
		return super.onTouchEvent(event);
	}

	private boolean isOutOfBounds(Activity context, MotionEvent event) {
		final int x = (int) event.getX();
		final int y = (int) event.getY();
		final int slop = ViewConfiguration.get(context).getScaledWindowTouchSlop();
		final View decorView = context.getWindow().getDecorView();
		return (x < -slop) || (y < -slop)|| (x > (decorView.getWidth() + slop))|| (y > (decorView.getHeight() + slop));
	}



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Activity使用Dialog样式导致点击空白处自动关闭的问题 的相关文章

  • 解决VC6在Win7或Win10下调试无法结束进程的Bug

    自己的系统是Win7 装上了VC6 调试一段小代码之后再次编译的时候就提示如下的错误 LINK fatal error LNK1168 cannot open Debug 1 exe for writing 意思就是编译要生成同名的 1 e
  • vue中使用Swiper

    一 安装依赖 npm i swiper 二 项目中使用 import swiper swiperSlide from vue awesome swiper import swiper css swiper css div class lb
  • JavaScript基础Day03:数组和函数

    JavaScript基础Day03 文章目录 JavaScript基础Day03 一 关键字break和continue 二 数组 1 数组的定义 2 数组的概念 3 创建数组 4 遍历数组 5 重点 冒泡排序 三 函数 1 参数 2 返回
  • C++与 python 变量生存周期比较

    1 C 中变量生存周期 参考 https blog csdn net darkxiaoming article details 70232620 在C 中变量有以下两种生存周期 变量由编译程序在编译时给其分配存储空间 称为静态存储分配 并在
  • 错误 D8016 “/O2”和“/RTC1”命令行选项不兼容

    错误方式 Debug模式下 优化 最大优化 基本运行时检查 两者RTC1 正确 最大优化 默认值 优化 最大优化 O2 基本运行时检查 设置 默认值
  • LInux下几种定时器的比较和使用

    在数据通信过程中 会遇到对数据发送时间的格式要求 所以要在应用中根据实际要求选择不同的定时器 就要考虑到几种应用定时器的特点 定时器文章参考 一般而言有 1 sleep usleep和nanosleep sleep 和nanosleep 都
  • C语言:利用函数递归实现计算n!。

    C语言 利用函数递归实现计算n include
  • 简单javascript的使用

    1 javascript的简介 是基于对象和事件驱动的语言 应用于客户端 基于对象 提供了好多对象 可以直接拿过来使用 事件驱动 html做网站静态效果 javascript动态效果 客户端 专门指浏览器 js的特点 1 交互性 信息的动态
  • 【Python文件的使用】

    文章目录 一 文件概述 1 文件类别 2 文件路径 3 文件的编码方式 二 文件操作 1 文件打开 2 文件读写 3 文件关闭 三 操作实例 一 文件概述 1 文件类别 文件是一个存储在辅助存储器上的数据序列 可以包含任何数据内容 概念上
  • 蓝桥杯.Java.数列排序

    问题描述 给定一个长度为n的数列 将这个数列按从小到大的顺序排列 1 lt n lt 200 输入格式 1 第一行为一个整数n 2 第二行包含n个整数 为待排序的数 每个整数的绝对值小于10000 输出格式 输出一行 按从小到大的顺序输出排
  • android 实现自动输入文本效果

    此控件的功能是帮助用户实现自动输入 例如当用户输入一个字符后 能够根据这个字符提示显示出与之相关的数据 里面用到了一个适配器来实现此功能 源代码如下 package com example autosearch import android
  • 土地调查图斑编号_土地年度变更调查“图斑类型”说明

    年 度 土 地 变 更 调 查 图 斑 类 型 年度土地变更调查 图斑类型 共分为11大类27个二级类 根据影像和数据库情况 分别填写相应数字代码 大类填写阿拉伯数字 小类填写大写的英文字母 如 1A 第1类 前时相影像有植被覆盖或明显非建
  • Java 多线程 --- 锁的概念和类型划分

    Java 多线程 锁的概念和类型划分 锁的概念 锁可以保证 原子性 可见性 有序性 乐观锁与悲观锁 公平锁与非公平锁 什么是可重入锁 独占锁与共享锁 轻量级锁和重量级锁 自旋锁 Spinlock 锁泄露 锁的概念 锁可以将多个线程对共享数据
  • 数据中心的拥塞控制(1)CN

    一 概述 CN来自于IEEE802 1Qau 它的目地是为带宽 时延积的量级为5Mbit或更小值的网络域中的长时间存在的流增加拥塞管理功能 这种流常存在于DCB网络 存储网络 计算机集群网络等环境中 因而DCB也常用在这些网络环境中 为了使
  • vue父子组件&继承组件的生命周期以及应用

    父子组件的生命周期顺序 今天在做项目时候 发现了一个问题 那就是父子组件的执行顺序问题 在我印象里 肯定是先执行父组件的生命周期 再执行子组件的生命周期 但其实并不是这样的 我们来看代码 我们先用vue cli搭建一个项目 用什么搭建并不重
  • python爬虫实战---爬取大众点评评论

    python爬虫实战 爬取大众点评评论 加密字体 1 首先打开一个店铺找到评论 很多人学习python 不知道从何学起 很多人学习python 掌握了基本语法过后 不知道在哪里寻找案例上手 很多已经做案例的人 却不知道如何去学习更加高深的知
  • [git]使用git+gitee实现在两台电脑数据同步

    如果是使用Mac电脑安装git后右键看不到git bash here 直接右击打开终端即可 不影响 目录 一 准备工作 1 获取两台电脑的SSH公钥 添加到gitee 2 在gitee创建仓库 二 从电脑一 想要共享的文件夹所在的电脑 上传
  • linux ioctl()详解

    一 ioctl的简介 虽然在文件操作结构体 struct file operations 中有很多对应的设备操作函数 但是有些命令是实在找不到对应的操作函数 如CD ROM的驱动 想要一个弹出光驱的操作 这种操作并不是所有的字符设备都需要的
  • c语言输入一个整数判断能不能被357整除,编写程序实现:输入一个整数,判断它能否分别被3、5、7整除,并输出以下信息之一: (1)能同时被3、5、7整除; (2)能被其中两数(要指出哪两个)整除; (...

    编写程序实现 输入一个整数 判断它能否分别被3 5 7整除 并输出以下信息之一 1 能同时被3 5 7整除 2 能被其中两数 要指出哪两个 整除 3 能被其中一个数 要指出哪一个 整除 4 不能被3 5 7中任一个整除 更多相关问题 实行市
  • bmc linux 默认密码_系统下重置BMC密码方法

    Windows系统 1 重置密码之前 请先安装IPMI驱动 如已安装请跳过此步 点击下载并解压 ipmitool win rar 双击getlog bat自动安装 2 打开cmd命令行 进入附件工具下的ipmitool目录 执行如下命令 确

随机推荐

  • Reactor模式,或者叫反应器模式

    Reactor这个词译成汉语还真没有什么合适的 很多地方叫反应器模式 但更多好像就直接叫reactor模式了 其实我觉着叫应答者模式更好理解一些 通过了解 这个模式更像一个侍卫 一直在等待你的召唤 或者叫召唤兽 并发系统常使用reactor
  • Python3,os模块还可以这样玩,自动删除磁盘文件,非必要切勿操作。

    删除磁盘下所有的文件 1 引言 2 代码实战 2 1 模块介绍 2 2 获取盘符 2 3 获取盘符下的目录 2 3 1 os listdir 2 3 2 os environ 2 3 3 os getenv 2 4 删除文件 2 4 1 删
  • ubuntu命令大全(建议收藏)

    Ubuntu 命令大全 一 文件目录类 1 建立目录 mkdir 目录名 2 删除空目录 rmdir 目录名 3 无条件删除子目录 rm rf 目录名 4 改变当前目录 cd 目录名 进入用户home目录 cd 进入上一级目录 cd 5 查
  • 《我想进大厂》之Redis夺命连环11问

    这是面试题系列第三篇 redis专题 说说Redis基本数据类型有哪些吧 字符串 redis没有直接使用C语言传统的字符串表示 而是自己实现的叫做简单动态字符串SDS的抽象类型 C语言的字符串不记录自身的长度信息 而SDS则保存了长度信息
  • 数字信号处理第四次试验:IIR数字滤波器设计及软件实现

    数字信号处理第四次试验 IIR数字滤波器设计及软件实现 前言 一 实验目的 二 实验原理与方法 三 实验环境 四 实验内容及步骤 五 实验结果截图 含分析 六 思考题 前言 为了帮助同学们完成痛苦的实验课程设计 本作者将其作出的实验结果及代
  • Yolov5部署成为Python接口 当然是用flask实现啦~ yolo5写成接口

    一 在此之前你是不是要先把yolov5跑通 yolov5的环境特别简单 建议在Ubuntu18 04下面部署 一次成型 省去很多麻烦 Ubuntu18 04 RTX2080 CUDA10 0 CUDNN7 4 1 Torch1 3 1GPU
  • IDEA中格式化代码快捷键

    一键格式化代碼 Ctrl Alt L 快捷键汇总链接 Intellij IDEA 快捷键整理 TonyCody Eclipse常用快捷键汇总 注意 如果按Ctrl Shift F在win10上会出现字体的简繁转换 再重复按键一次就可以转换回
  • 解决HTTP方式git push连接不上GitHub仓库等问题

    仅适用于HTTP方式PUSH 1 首先确定能正常访问GitHub 2 本地Git凭据要设置正确 使用命令设置本地Git凭据 git config global user name GitHub账户名 git config global us
  • 在eclipse环境下运行Servlet程序报错:404资源不可见或资源不愿意公开的解决办法

    在eclipse环境下运行Servlet程序报错 404资源不可见或资源不愿意公开 主要原因是缺少支持Servlet运行的API 具体原因如下 编译Servlet程序需要HttpServlet HttpServletRequest 和Htt
  • Git代码回滚提交分支

    在项目中会出现当前版本的代码仓出现问题 或者其它的一些情况 需要将当前的代码回滚到之前的某个指定版本上去 一 git reset回滚到指定的commit id版本 之后所提交的内容会被全部丢弃 如下图有4笔 commit 现在需要从当前的f
  • SpringCloud原生注解 @RefreshScope 的作用

    作用 SpringCloud 使用 RefreshScope注解 实现配置文件的动态加载 使用方法 修改配置文件后 不重启应用 在需要读取配置文件的地方添加 RefreshScope注解 发送POST请求 http localhost po
  • 数据结构之栈与队列

    目录 栈 后进先出 20 有效的括号 力扣 LeetCode 682 棒球比赛 力扣 LeetCode 队列 先进先出 26 删除有序数组中的重复项 力扣 LeetCode 27 移除元素 力扣 LeetCode 栈 后进先出 Stack
  • 北漂码农的真实心声:赚一线城市的钱,还二线城市的房贷

    作者 年素清 责编 王晓曼 出品 程序人生 ID coder life 我叫郭子洋 1993年出生在安徽南部的一座小城 父亲是某国企下属单位的一名车间工人 母亲四处打零工补贴家用 我还有一个比我大三岁的姐姐 虽然家境寒微 但父母非常注重我和
  • 信息学奥赛一本通 1180:分数线划定

    题目链接 http ybt ssoier cn 8088 problem show php pid 1180 include
  • 面向对象设计原则——接口隔离原则

    接口隔离原则 Interface Segregation Principle ISP 使用多个专门的接口 而不使用单一的总接口 即客户端不应该依赖那些它不需要的接口 根据接口隔离原则 当一个接口太大时 我们需要将它分割成一些更细小的接口 使
  • matplotlib画图:柱形图、堆叠柱形图、分组柱形图。

    matplotlib画图 柱形图 堆叠柱形图 分组柱形图 分组柱形图与堆叠柱形图的区别 堆叠柱形图 有助于帮助我们观察部分与整体之间的关系 如 2020年每个区域每个季度的销售情况 分组柱形图 当比较一个整体的某组成部分与其他整体对应组成部
  • maven的详细下载和安装

    一 maven的安装 1 首先去官网下载maven https maven apache org download cgi 直接下载就可以使用 如果想要下载历史版本 点击下方的archives可以了 2 下载完成后 解压下载的maven安装
  • Loughran&McDonald金融文本情感分析库

    今天看到一个预测股价的项目 其中用到pysentiment库对金融文本数据进行情感计算 查了下该库的官方文档 发现该库提供了两大情感分析 Harvard IV 4 英文通用情感分析 Loughran MCdonald 英文金融情感分析 py
  • [深度学习]C++调用Python-YOLO模型进行目标检测

    文章目录 前言 C 调用Python的步骤 修改YOLOv5源码 C 读取Python返回值 前言 目前深度学习算法大多数是基于Python实现 但一些项目的框架是用C 搭建 所以就出现了在C 中调用模型的问题 本文主要记录C 调用Pyth
  • Activity使用Dialog样式导致点击空白处自动关闭的问题

    将Activity设置成窗口的样式实现Dialog或者Popupwindow效果在开发中是很常用的一种方式 在AndroidMenifest xml中将需要设置的Activity增加android theme android style T