2014-09-22 1 views
0

При запуске запроса («*») через консоль на терминале я получаю вывод, похожий на следующий. Этот вывод верен для всех намерений и целей:calabash-android: координаты «y» и «center_y» смещаются на 222 при запуске запроса («*») через RubyMine

[ 
[ 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% случаев поведение было таким, как я описал.

Я использую кальян-андроид 0.5.2

Кто-нибудь есть какие-либо идеи, что может быть причиной этого изменения?

ответ

0

Оказалось, что смещение появилось на этом экране в приложении, поскольку клавиатура была видна на предыдущем экране.

Нажмите, чтобы сгенерировать всплывающее окно, пока клавиатура была видна, заставляя калабаш читать местоположение представления, пока клавиатура все еще присутствовала или, по крайней мере, в процессе ее исчезновения, следовательно, координаты «y» и «center_y» были подняты несколько сотен пикселей.

Я решил проблему, используя «press_back_button», чтобы закрыть клавиатуру, прежде чем выбирать всплывающее окно.