如何在窗口外触摸时取消 Activity 等主题的对话框?

2023-12-14

我有一个带有对话框主题的活动,当有人触摸此活动窗口之外的任何位置的屏幕时,我想关闭(完成)此活动?我怎样才能做到这一点 ?


只是要指出的是is一种从以对话框为主题的活动中获得类似对话框的“触摸外部取消”行为的方法,尽管我还没有完全调查它是否有不需要的副作用。

在 Activity 的 onCreate() 方法中,在创建视图之前,您将在窗口上设置两个标志:一个使其成为“非模态”,以允许除 Activity 视图之外的视图接收事件。第二个是接收其中一个事件已发生的通知,这将向您发送 ACTION_OUTSDIE 移动事件。

如果将活动的主题设置为对话框主题,您将获得所需的行为。

它看起来像这样:

public class MyActivity extends Activity {

 @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Make us non-modal, so that others can receive touch events.
    getWindow().setFlags(LayoutParams.FLAG_NOT_TOUCH_MODAL, LayoutParams.FLAG_NOT_TOUCH_MODAL);

    // ...but notify us that it happened.
    getWindow().setFlags(LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);

    // Note that flag changes must happen *before* the content view is set.
    setContentView(R.layout.my_dialog_view);
  }

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    // If we've received a touch notification that the user has touched
    // outside the app, finish the activity.
    if (MotionEvent.ACTION_OUTSIDE == event.getAction()) {
      finish();
      return true;
    }

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

如何在窗口外触摸时取消 Activity 等主题的对话框? 的相关文章

随机推荐

  • 在 JOptionPane 中将文本右对齐

    是否可以在 JOptionPane 中将文本向右对齐 我不想使用JDialog 因为我想用阿拉伯语写一些句子 创建一个 JPanel 在 JPanel 中对齐文本 然后将 JPanel 添加为 JOptionPane 的 Object 参数
  • 如何在 Swift 中以编程方式旋转一组按钮?

    我正在尝试以编程方式将编号按钮排列在一个圆圈中 NSLayoutConstraint 锚定视图 而 UIView 的子类创建按钮圈 框架绕中心旋转 但按钮旋转不一致 除一次旋转外 所有旋转中的文本方向均相同 for example 我用于排
  • jquery ajax进度与自定义计算

    在执行处理图片的长 PHP 脚本时 我需要有关 ajax 进度条的建议 我知道 stackoverflow 上已经有很多问题了 比如 显示长时间运行的 PHP 脚本的进度 or 通过 xhr 实现 JQuery ajax 进度 or 使用a
  • Java读写本地数据库?

    我有一个程序不断从网站获取信息并不断更新 截至目前 我将所有这些信息存储在arraylist然后当我完成后 我将其写入文本文件 我需要操纵这些信息 但是 它创建了一个巨大的文本文件 我无法不断地读取信息并将信息写入文本文件 因为它需要很长时
  • 如何为 Azure AD B2C 配置 SSO?

    As per Azure AD B2C 文档我们可以为 Azure AD B2C 应用程序配置 SSO 我们希望用户自行注册应用程序 从而选择 AD B2C 但是 在创建 B2C 租户帐户并配置所有策略之后 我无法找到配置 SSO 的选项
  • 这个构造是什么意思“__builtin_expect(!!(x), 1)”

    具体来说 我问的是双 在 built in 的参数中 按照 C 语言 它是双重否定吗 The 简直就是两个 操作员彼此相邻 这是将任何非零值转换为的简单方法1 并离开0按原样 又名 布尔化 值 看 c 运算符 是两个 NOT 吗 对于一般逻
  • 获取视图或控制器中的当前区域名称

    如何获取视图或控制器中的当前区域名称 有没有类似的东西ViewContext RouteData Values controller 对于地区 从MVC2开始你可以使用ViewContext RouteData DataTokens are
  • Rails 3.1,由于缺少局部部分变量而导致内存泄漏(Ruby 1.9.2-p290)

    如果我像这样渲染部分 渲染 部分 gt event news item 对象 gt 事件 变量 gt true 然后参考variable在部分中触发了内存泄漏 Rails 似乎进入了递归 然后 我必须在内存使用量失控之前快速重新启动服务器
  • 如何获取亚马逊S3上文件的md5sum

    如果我在 Amazon S3 上有现有文件 那么无需下载文件即可获取其 md5sum 的最简单方法是什么 AWS 的文档ETag 截至 2023 年 11 月 17 日 说 实体标签 ETag 代表对象的特定版本 ETag 仅反映对象内容的
  • 使用 MinGW/MSYS 编译 freetype2 时出现问题

    用MinGW和MSYS编译freetype2好像有问题 我对 freetype 源代码的干净副本以及纯粹的 MinGW 和 MSYS 的尝试给出了 Andrew MCARDLE PC documents code cd freetype 2
  • 创建单独变量字典的更简单方法?

    我希望能够以字符串形式获取变量的名称 但我不知道 Python 是否具有那么多的自省功能 就像是 gt gt gt print my var name my var 我想这样做 因为我有一堆变量 我想把它们变成字典 例如 bar True
  • 无法调用分页dojo增强网格上的函数

    我尝试了所有可能的方法 但它不起作用 当我移动到 dojo dataGrid 中的另一个页面 分页期间 时 我想调用一个函数 我尝试了下面的代码 但它不起作用 方法一 nextPage function src alert going gr
  • 在loopback.io中进行连接查询

    我正在尝试使用 Loopback io 构建一个简单的应用程序作为我的学习过程 我已经设置了项目 创建的模型和 API 工作正常 现在我正在尝试创建一个自定义 api 它可以通过进行联接查询从两个不同的模型获取数据 所以我有两个模型 sto
  • axios post 请求成功后刷新表

    这是我来自 axios 的示例请求响应 var data id 1 name john username john doe birthdate 1999 05 21 age 20 email email protected id 2 nam
  • 将多个 hdf5 文件合并到一个 pytable 中

    我有一些hdf5文件 每个文件都具有相同的结构 我想创建一个pytable通过某种方式合并它们hdf5 files 我的意思是 如果 file1 中的数组的大小为 x 而 file2 中的数组的大小为 y 则结果数组pytable大小为 x
  • 我可以将 CSS 应用于 swing 文本组件吗?

    许多 swing 文本组件将解释 HTML 如果可能的话 我想使用 CSS 来设置 HTML 的样式 有人知道怎么做吗 The Jaxx框架允许您执行此操作
  • 从音频输入捕获原始音频以在 Mac 上进行实时处理的最简单方法

    从内置音频输入捕获音频并能够在请求时实时读取原始采样值 如 wav 中 的最简单方法是什么 就像从套接字读取一样 希望代码使用 Apple 的框架之一 音频队列 文档不是很清楚 我需要的是非常基础的 为此尝试使用 AudioQueue 框架
  • Google API 上未捕获异常“InvalidArgumentException”,带有消息“

    我已复制此网站上他们的文档中的代码 here 我已经更改了下面这些的 JSON 我已经在 Composer 上的 API 上生成了新文件 但仍然遇到一些问题 我不确定我做错了什么 这是否意味着他们的 API 漏洞太多 这是演示链接 demo
  • 使用嵌套视图时 Prism 7 抛出异常

    几个月前我发布了类似的问题使用 Prism 和 IsNavigationTarget 处理嵌套视图 可能返回 false 我仍然不确定正确的方法是什么 假设你有一个视图A 在这个视图A中你声明了一个区域A 然后你在这个区域A中注入了一个视图
  • 如何在窗口外触摸时取消 Activity 等主题的对话框?

    我有一个带有对话框主题的活动 当有人触摸此活动窗口之外的任何位置的屏幕时 我想关闭 完成 此活动 我怎样才能做到这一点 只是要指出的是is一种从以对话框为主题的活动中获得类似对话框的 触摸外部取消 行为的方法 尽管我还没有完全调查它是否有不