我想刷一下ViewPager。我使用以下代码进行页面滑动。但不幸的是没有用。
Solo solo = new Solo(getInstrumentation(), getActivity());
int screenHeight = activityUtils.getCurrentActivity().getWindowManager().getDefaultDisplay()
.getHeight();
int screenWidth = activityUtils.getCurrentActivity(false).getWindowManager().getDefaultDisplay()
.getWidth();
float x = screenWidth / 3.0f * 2.0f;
float y = screenHeight / 3.0f * 2.0f;
尝试:1
solo.swipe(x, 0, y, y, 40);
尝试:2
if (side == Side.LEFT)
drag(0, x, y, y, 40);
else if (side == Side.RIGHT)
drag(x, 0, y, y, 40);
尝试:3 按照方法工作,但它只移动单页,而且移动速度非常慢。
solo1.scrollToSide(Solo.RIGHT);
有快速滑动的选项吗?哪一个最好?请分享您的想法。
我的Robotium 5.1代码
for (int count = 0; count < noOfPages; count++)
solo.swipeToRight(count);
查看寻呼机滑动的方法
private void swipeToLeft(int stepCount) {
Display display = solo.getCurrentActivity().getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
float xStart = width - 10 ;
float xEnd = 10;
solo.drag(xStart, xEnd, height / 2, height / 2, stepCount);
}
private void swipeToRight(int stepCount) {
Display display = solo.getCurrentActivity().getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
float xStart = 10 ;
float xEnd = width - 10;
solo.drag(xStart, xEnd, height / 2, height / 2, stepCount);
}
答案 0 :(得分:4)
solo.scrollToSide(Solo.RIGHT); 这个实现也足够快......
答案 1 :(得分:1)
此问题已在Robotium 5.1中修复。你可以从这里下载:
答案 2 :(得分:0)
用于滚动到侧面的robotium repo中的代码是:
public void scrollToSide(int side) {
switch (side){
case RIGHT: scroller.scrollToSide(Scroller.Side.RIGHT, 0.70F); break;
case LEFT: scroller.scrollToSide(Scroller.Side.LEFT, 0.70F); break;
}
}
@SuppressWarnings("deprecation")
public void scrollToSide(Side side, float scrollPosition) {
int screenHeight = activityUtils.getCurrentActivity().getWindowManager().getDefaultDisplay()
.getHeight();
int screenWidth = activityUtils.getCurrentActivity(false).getWindowManager().getDefaultDisplay()
.getWidth();
float x = screenWidth * scrollPosition;
float y = screenHeight / 2.0f;
if (side == Side.LEFT)
drag(0, x, y, y, 40);
else if (side == Side.RIGHT)
drag(x, 0, y, y, 40);
}
public void drag(float fromX, float toX, float fromY, float toY,
int stepCount) {
dialogUtils.hideSoftKeyboard(null, false, true);
scroller.drag(fromX, toX, fromY, toY, stepCount);
}
所以看起来你必须接近,我的猜测是你在拖动调用中使用的数字无法使视图寻呼机工作。我建议尝试使用机器人EXCEPT使用的编号为最后一个参数,如果你改变它应该使滑动发生得更快,因为这个数字是完成滑动所需的事件的数量。您可能需要试验这个数字。