2012-07-03 24 views
0

我正在使用robotium 3.1,我想等待视图消失,有什么方法可以轻松完成吗?我目前的方式涉及到一个丑陋的繁忙循环,睡眠让人无法幸福。Robotium waitForView消失?

To clarify what I'd like to happen: 
waitForView(<View>) //The view appears 
//The view is visible for a few seconds 
waitForViewNotThere(<View>) //waits until the view has disappeared 

显示的视图不包含任何文本或其他。任何意见都非常感谢。

回答

5

这是怎么了:

final TextView helloWorldText = solo.getText("Hello world!"); 

    solo.waitForCondition(new Condition() { 
     @Override 
     public boolean isSatisfied() { 
      return helloWorldText.getVisibility() == View.INVISIBLE; 
     } 
    }, 10000); 
1

无论你做什么你可能会在循环中有某种睡眠。 (如果你看着robotiums的源代码,它也使用睡眠)。通过在等待UI线程变为空闲的检测上使用waitforidlesync方法,可以将它们保持在最低水平。

0

如果您想等待视图消失,请使用solo.waitForDialogToClose(long timeout)
参数: timeout - 等待的时间量(以毫秒为单位)。
返回:如果对话框在超时前关闭,则返回true;如果关闭,则返回false。