0

通过终端上的控制台运行 query("*") 时,我得到类似于以下内容的输出。此输出对于所有意图和目的都是正确的:

[
 [ 0] {
                    "id" => nil,
               "enabled" => true,
    "contentDescription" => nil,
                 "class" => "com.android.internal.policy.impl.PhoneWindow$DecorView",
                  "rect" => {
        "center_y" => 616,
        "center_x" => 360,
          "height" => 507,
               "y" => 363,
           "width" => 640,
               "x" => 40
    }
]

但是,当我在测试执行期间在 RubyMine 上运行相同的命令时,我得到错误的偏移输出,如下所示:

{
  "id"=>nil,
  "enabled"=>true,
  "contentDescription"=>nil,
  "class"=>"com.android.internal.policy.impl.PhoneWindow$DecorView",
  "rect"=>{
      "center_y"=>394,
      "center_x"=>360,
      "height"=>507,
      "y"=>141,
      "width"=>640,
      "x"=>40
  },
  "tag"=>nil,
  "description"=>"com.android.internal.policy.impl.PhoneWindow$DecorView{41fcdad8 V.E.....  R....... 0,0-640,507}
}

我只在我的应用程序的一个特定屏幕上看到这种行为。其余的都按预期工作,但在这个屏幕上它始终是 222 像素。

这导致单击事件失败,因为它认为元素在屏幕上比实际位置高得多。

我偶尔会在控制台上看到不正确的输出,并且同样从 RubyMine 得到正确的输出,但是大约 95% 的行为与我所描述的一样。

我正在使用葫芦-android 0.5.2

有谁知道是什么导致了这种变化?

4

1 回答 1

0

事实证明,偏移量出现在应用程序的这个屏幕上,因为键盘在前一个屏幕上是可见的。

在键盘可见时单击以生成弹出窗口会导致葫芦在键盘仍然存在或至少在消失的过程中读取视图的位置,因此“y”和“center_y”坐标升高了一些百像素。

我通过在选择弹出窗口之前使用“press_back_button”关闭键盘解决了这个问题。

于 2014-09-26T10:16:29.433 回答