gpt4 book ai didi

java - Chromebook 上的 Android 应用无法使用查看/获取用户事件

转载 作者:行者123 更新时间:2023-12-01 16:32:14 24 4
gpt4 key购买 nike

我使用 Delphi 创建多平台应用程序。它适用于 Android。在 Chromebook 上,Chrome 操作系统更新后不久就开始出现故障。Delphi 使用自己的 Windows 处理。

最初是mNativeContentView.getViewTreeObserver().addOnGlobalLayoutListener(this);在 NativeActivity 中出现了一些空指针异常。

经过一些调整后,我得到了 Delphi 中制作的用户界面,但它不响应用户的任何点击/触摸。我有一些带有计时器的时钟,因此我可以看到应用程序处于 Activity 状态,只是无法“单击”它。

关于https://developer.android.com/topic/arc/input-compatibility我发现 Android 和 Chromebook 存在上述差异:

在自由格式窗口模式下,应用程序标题栏是 View 层次结构的一部分,并在您的控制之下。您通常不必意识到这一点,但在某些情况下您必须小心:

不要摆弄 Window.getDecorView()。如果您想添加顶级 View ,请将它们添加到您设置为 Activity.setContentView() 的 View 中。

Delphi 正在使用 window.getDecorView。

如果我查看 Android 源代码,我会看到 NativeActivity :setContentView(mNativeContentView);

mNativeContentView 是私有(private)成员。

这给了我一些问题:

1) 这是否意味着根本没有办法尝试用 mNativeContentView 替换 window.getDecorView ? 我可以以某种方式访问​​ mNativeContentView 吗?

2) 是否有另一种方法可以让它作为顶部窗口在 Chromebook 上获取鼠标/触摸事件?

3)在日志中我可以看到: SurfaceFlinger:重复的图层名称:更改 SurfaceView ... 重复图层名称:更改 -SurfaceView 的背景 - ...

 This does not occur on real Android tablet obly on Chromebook.

这只是一个无害的警告还是表明存在错误?

最佳答案

通过重写派生的 NativeActivity 类中的dispatchTouchEvent 来解决。为顶 View 添加了显式的dispatchTouchEvent,以防正常的Activity.dispatchTouchEvent无法处理它。

关于java - Chromebook 上的 Android 应用无法使用查看/获取用户事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62019275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com