我正在使用机器人3.1,我想等待视图消失,有什么方法可以轻松地做到这一点吗?我目前的方式涉及一个丑陋的忙碌循环,睡眠不会让人高兴。
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
出现的视图不包含任何文本等。任何输入都非常感谢。
答案 0 :(得分:5)
这是:
final TextView helloWorldText = solo.getText("Hello world!");
solo.waitForCondition(new Condition() {
@Override
public boolean isSatisfied() {
return helloWorldText.getVisibility() == View.INVISIBLE;
}
}, 10000);
答案 1 :(得分:1)
无论你做什么,你可能会在循环中有某种睡眠。 (如果你看看机器人的来源它也使用睡眠)。您可以通过在等待Ui线程空闲的检测上使用waitforidlesync方法将它们保持在最低限度。
答案 2 :(得分:0)
如果您想等待视图消失,请使用solo.waitForDialogToClose(long timeout)
参数:
timeout - 等待的时间量(以毫秒为单位)
返回:如果Dialog在超时之前关闭,则返回true;如果未关闭,则返回false。