Android Robotium-浏览页面滑动不工作
我想刷卡浏览页面。我使用以下代码进行页面滑动。但不幸的是,这种方法不起作用Android Robotium-浏览页面滑动不工作,android,android-viewpager,robotium,Android,Android Viewpager,Robotium,我想刷卡浏览页面。我使用以下代码进行页面滑动。但不幸的是,这种方法不起作用 Solo solo = new Solo(getInstrumentation(), getActivity()); int screenHeight = activityUtils.getCurrentActivity().getWindowManager().getDefaultDisplay() .getHeight();
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
尝试:2
尝试:3
下面的方法可以工作,但它只移动一页,而且移动速度非常慢
solo1.scrollToSide(Solo.RIGHT);
有没有快速刷卡的选项?哪一个最好?请分享你的想法
我与Robotium 5.1的代码
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);
}
看来你一定很接近了,我猜你在拖动呼叫中使用的号码无法使浏览寻呼机工作。我建议尝试robotium使用的枚举器,但最后一个参数除外,如果您更改该参数,将加快刷卡速度,因为此数字是完成刷卡所需的事件数。您可能需要尝试一下这个数字。那么,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);
}
看来你一定很接近了,我猜你在拖动呼叫中使用的号码无法使浏览寻呼机工作。我建议尝试robotium使用的枚举器,但最后一个参数除外,如果您更改该参数,将加快刷卡速度,因为此数字是完成刷卡所需的事件数。您可能需要尝试使用该数字。此问题已在Robotium 5.1中修复。您可以从这里下载:
此问题已在Robotium 5.1中修复。您可以从这里下载:
solo.scrollToSideSolo.RIGHT;
此实现也足够快…solo.scrollToSideSolo.RIGHT;
此实现也足够快…我下载了Robotium 5.1,但问题仍然存在。请尝试使用以下方法:solo.scrollViewToSidesolo.GetViewPager,solo.RIGHT;我下载了Robotium 5.1,但问题仍然存在。请尝试使用:solo.scrollViewToSidesolo.GetViewPager,solo.RIGHT;
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);
}
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);
}