getWindowVisibleDisplayFrame() 在 Android 2.2、2.3 中给出不同的值(但不是 2.3.3)

2023-11-23

我有一个Activity它使用

getWindow().getDecorView().getWindowVisibleDisplayFrame(rectangle);

确定可用的屏幕空间并决定放置图像的位置。

单击硬件“后退”按钮离开后返回活动Activity,矩形值为

(0,0,800,480)

但是,在单击硬件“主页”按钮后返回活动以离开Activity,矩形值为

(0,38,800,480)

这会影响显示和图像的放置。

如何确保调用时获得一致的值

getWindow().getDecorView().getWindowVisibleDisplayFrame(rectangle);

不管我如何离开应用程序?

更新:感谢@Reno 帮助测试;它似乎依赖于 Android 版本而不是设备。


好吧,如果您阅读源代码中的注释,它承认这种方法有点损坏

    public void getWindowVisibleDisplayFrame(Rect outRect) {
    if (mAttachInfo != null) {
        try {
            mAttachInfo.mSession.getDisplayFrame(mAttachInfo.mWindow, outRect);
        } catch (RemoteException e) {
            return;
        }
        // XXX This is really broken, and probably all needs to be done
        // in the window manager, and we need to know more about whether
        // we want the area behind or in front of the IME.
        final Rect insets = mAttachInfo.mVisibleInsets;
        outRect.left += insets.left;
        outRect.top += insets.top;
        outRect.right -= insets.right;
        outRect.bottom -= insets.bottom;
        return;
    }

对于

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

getWindowVisibleDisplayFrame() 在 Android 2.2、2.3 中给出不同的值(但不是 2.3.3) 的相关文章

  • 服务如何在后台运行 - Android

    今天的采访中我被问到了这个问题 什么是服务 我对此的回答是 Service 是 Android 的基本组件 它没有 UI 并且在后台运行 Service 是否在主线程上运行 不 那么它是如何在后台运行的呢 我心里一片空白 有人可以解释一下如
  • Android Widget ID 是否持久

    在从桌面删除该 Widget 实例之前 您从操作系统收到的用户桌面上特定 Widget 实例的 Widget ID 是否一致 我找不到任何明确说明这一点的文档 但我假设这是因为文档说您可以使用小部件 id 来存储任何实例配置信息 我想将一些
  • 配置项目 ':react-native-gesture-handler' 时出现问题

    大家好 我已经尝试了很长时间来解决这个问题 但不幸的是我还没有弄清楚如何解决 希望你们能帮助我 所以我有一个反应本机项目和我的朋友 以及我的一位朋友添加 React native gesture handler 包供我们使用 他对这个包没有
  • 在 Android 市场中以编程方式检查我的应用程序版本

    目前 我正在启动时检查应用程序版本代码 并将其与我的服务器上的最新版本代码进行匹配 并根据此匹配 我发送用户从 Android 市场获取最新更新 它运行良好 但我的问题是我必须手动更改服务器上的最新版本代码 并且我不知道新版本何时发布APK
  • 如何从Slog中查看日志

    如何查看 Slog API 生成的日志 是否有任何选项可以查看系统缓冲区中的日志 我的意思是查看我们使用的无线电缓冲区的日志 adb logcat b 无线电 而这个日志是由Android的Log类生成的 Slog API 的输出在哪里 怎
  • 将项目添加到 android 框架的设置中

    我正在 android 框架中工作 我想向 android 操作系统中的现有设置添加一个项目 您能告诉我如何执行此操作吗 首先阅读有关偏好活动 http developer android com reference android pre
  • 使用 START_STICKY 启动时服务进程被终止后的 onStartCommand

    我一直在阅读 Android 文档 我想知道是否有人可以阐明当以 START STICKY 启动的服务的进程被终止时服务实例会发生什么情况 我假设本地状态数据 实例变量 也丢失了 Android 在重新创建服务时是否会采取任何措施来帮助重新
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 片段活动中的 commitAllowingStateLoss()

    我的应用程序使用片段活动 它仅处于纵向模式 无法旋转屏幕 最初我使用的是commit 方法 但现在我计划不加区别地将这些更改为commitAllowingStateLoss 对于碎片活动 是否有任何理由不不加区别地执行此操作而不重新评估我使
  • 有没有办法创建 PWA(渐进式 Web 应用程序)的 Android 桌面小部件?

    我正在构建一个渐进式 Web 应用程序 有没有办法创建 Android 桌面小部件 None
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • Android 两个 Activity 之间的共享元素转换不起作用

    在我的应用程序中 我尝试使用新引入的活动之间共享的元素 如果共享元素具有固定位置 例如 android layout gravity top 但是当视图被锚定时问题就出现了 我的第一个活动如下所示
  • 如何获取Android中的所有主屏幕?

    我是安卓开发新手 我知道每个主屏幕都是启动器中的一个工作区 我想获取屏幕上所有应用程序图标的所有位置信息 那么有没有办法获取这些屏幕对象及其图标信息的列表 ADD 我更期待的是应用程序图标和屏幕之间的关系 例如 我想要某个应用程序图标的位置
  • 用户通过 firebase 动态链接安装应用程序并在应用程序抽屉上打开应用程序后,如何获得深层链接?

    我正在使用 firebase 动态链接邀请朋友使用我的应用程序 一切都很好 单击邀请链接会将我带到 Playstore 当我安装应用程序并等待其完成时 Playstore 会向我显示 继续 按钮 当我单击此按钮时 应用程序将打开 并且我会收
  • Android - 检测视图上的双击和三次点击

    我一直在尝试构建一个可以检测双敲击和三敲击的敲击检测器 在我的努力失败后 我在网上搜索了很长时间以找到可以使用的东西 但没有运气 奇怪的是 像这样的图书馆如此稀缺 有什么帮助吗 你可以尝试这样的事情 尽管我通常建议不要使用三次点击作为一种模
  • 带有工具提示的搜索栏 android

    Hi All 我正在尝试使用工具提示自定义 android 搜索栏 如给定的图像 有没有办法在搜索栏中添加带有拇指的文本视图 或任何其他想法 Thanks 我们可以通过拇指的界限来做到这一点 并在seekbar的progressChange
  • 致命异常:GoogleApiHandler

    在我的项目中 我使用货币化服务 Vungle AppLovin 当我尝试加载广告时 出现此异常 E AndroidRuntime 致命异常 GoogleApiHandler 进程 kz ikar PID 3673 java lang NoS
  • Android:我的应用程序太大并给出“无法执行 dex:方法 ID 不在 [0, 0xffff]: 65536”?

    我正在尝试将我的应用程序与 Box Dropbox 和 Google Drive 集成 所有这 3 项服务都需要许多第 3 方 jar 此外 我的应用程序已经需要一些第三方 jar 现在 当我尝试从 Eclipse 运行我的应用程序时 出现
  • android.view.WindowLeaked - 使用对话框和新意图时

    我已经尝试了 stackoverflow 上提供的所有可能的解决方案 但我仍然在 logcat 中遇到此错误 活动 com xyz MainActivity 泄露了最初在此处添加的窗口 com android internal policy
  • FCM(Firebase Cloud Messaging)如何发送到所有手机?

    我创建了一个小型应用程序 能够从 FCM 控制台接收推送通知 我现在想做的是向所有使用 API 安装应用程序的 Android 手机发送推送通知 这就是我完全迷失的地方 有没有办法在不收集所有注册ID的情况下将其发送到所有手机 这是否仅适用

随机推荐

  • 以正确的方式避免循环依赖 - NestJS

    说我有一个StudentService一种为学生增加课程的方法LessonService使用一种将学生添加到课程中的方法 在我的课程和学生解决程序中 我希望能够更新本课程学生关系 所以在我的LessonResolver我有一些类似的事情 a
  • 在 VS Code 控制台中调试 JavaScript

    如何在 VSCode 控制台中快速测试 JavaScript 如下图所示 我必须安装扩展才能执行此操作吗 我在 Ubuntu 和 Windows 10 中使用 VSCode 但我没有看到Console 我所看到的只是调试控制台 Proble
  • 这个带有可变引用参数的 JavaScript 函数是纯函数吗?

    我有同样的问题this one 但是在 JavaScript 的上下文中 From 维基百科 纯函数 的返回值与same论据 那里进一步声称 纯函数不允许使用 可变引用参数 来改变返回值 在 JavaScript 中 每个普通对象都作为 可
  • 将简单套接字变成 SSL 套接字

    我编写了简单的 C 程序 它们使用套接字 客户端 和 服务器 UNIX Linux 用法 服务器端简单地创建一个套接字 sockfd socket AF INET SOCK STREAM 0 然后将其绑定到 sockaddr bind so
  • 为什么 JPA 实体中的属性不允许“公共”?

    The JPA 2 0规范第 22 页说 类的实例变量必须 是私有的 受保护的或包的 可见性与是否 字段访问或属性访问是 用过的 当使用属性访问时 属性访问器方法必须是 公共或受保护 为什么不允许公众访问 对于公共字段 代理将无法可靠地工作
  • 使用自定义访问者时,如何停止使用 Boost Graph Library 进行广度优先搜索?

    假设我找到了符合我的条件的节点 我需要停止搜索 解决方案是抛出已知类型的异常 然后在调用方捕获它 来自FAQ 如何提前退出 BFS 等算法 创建一个在您想要中断搜索时抛出异常的访问者 然后将对 breadth first search 的调
  • Select 和 SelectMany 之间的区别

    我一直在寻找之间的区别Select and SelectMany但我一直没能找到合适的答案 我需要了解使用 LINQ To SQL 时的区别 但我发现的只是标准数组示例 有人可以提供 LINQ To SQL 示例吗 SelectMany展平
  • OpenCV Android - 使用 CameraBridgeViewBase 的颜色问题

    我在使用 Android 模拟器和 OpenCV 时遇到一个奇怪的问题CameraBridgeViewBase Using onCameraFrame我收到一张看起来未正确解码的图片 public Mat onCameraFrame CvC
  • 数组的 Arrays.asList()

    这个转换有什么问题吗 public int getTheNumber int factors ArrayList
  • Haskell 计算密集型线程会阻塞所有其他线程

    我想编写一个程序 其主线程分叉一个新线程进行计算并等待它完成一段时间 如果子线程没有在给定时间内完成 它将超时并被终止 我有以下代码 import Control Concurrent fibs Int gt Int fibs 0 0 fi
  • 恢复 Django-mailer 数据库时 MySQL 错误 1118(行大小太大)

    我从 django 应用程序转储了一个正在运行的生产数据库 并尝试将其迁移到我的本地开发环境 生产服务器运行MySQL 5 1 本地我有5 6 当迁移 django mailer 的 messagelog 表时 我遇到了可怕的错误 1118
  • SQL 错误:ORA-02000:创建基于标识列的表时缺少 ALWAYS 关键字

    我尝试在表上创建一个自动递增列 正如我在此看到的post有两种方法 使用 Identity 列的第二种实现是一个更优雅的解决方案 但是当我尝试实现它时 出现以下错误 Error at Command Line 3 Column 31 Err
  • 散点图中的颜色编码误差线

    我正在尝试创建一个森林地块 with R plotly我想通过相应的 p 值对效应大小 点 及其误差线进行颜色编码 以下是玩具数据 set seed 1 factors lt paste0 1 25 age effect sizes lt
  • 为什么 Devise 将注册错误重定向到不同的页面?

    我创建了新的 Rails 项目 仅使用生成的主页控制器来测试它 我的设计型号是User 所以注册页面是http localhost 3000 users sign up 如果我触发错误 例如 在未提供密码的情况下提交表单 我会被重定向到ht
  • UIView alpha = 0 导致触摸被删除到下面的视图

    因此 我创建了一个玻璃窗格或自定义 UIView 来处理触摸 该玻璃窗格位于其他视图 例如虚拟 UIButtons 之上 当我将 alpha 设置为 0 时 触摸实际上会被玻璃视图下方的视图拦截 这是错误的 但是 当我将 alpha 设置为
  • 如何在 iTextSharp 中将 PDF 转换为文本文件

    我必须从 PDF 文件中检索文本 但使用下面的代码我只得到空文本文件 for int i 0 i lt n i pagenumber i 1 filename pagenumber ToString while filename Lengt
  • 如何在 imacros 中使用 JavaScript?

    我不知道如何在 JavaScript 中使用 imacros 我查看了他们的帮助 在 Stack Overflow 上看到了无数的例子 但不知道缺少什么 任何地方都没有明确解释 这是我尝试过的 使用他们的帮助文件中解释的示例 http wi
  • 如何防止 FileUpload 控件在回发时被清除? [复制]

    这个问题在这里已经有答案了 我在使用 FileUpload 控件时遇到了一些问题 想知道是否可以获得一些帮助 在我的页面上 我有一个 FileUpload 控件和一个下拉列表 因此 用户浏览到他们想要的文件 然后从下拉列表中选择一个选项 这
  • Google Drive API 如何找到文件的路径?

    我试图在使用 Google Drive API 获取文件列表时找到文件的路径 现在 我可以获取文件属性 当前仅获取校验和 id 名称和 mimeType results globalShares service files list pag
  • getWindowVisibleDisplayFrame() 在 Android 2.2、2.3 中给出不同的值(但不是 2.3.3)

    我有一个Activity它使用 getWindow getDecorView getWindowVisibleDisplayFrame rectangle 确定可用的屏幕空间并决定放置图像的位置 单击硬件 后退 按钮离开后返回活动Activ