如何滚动到ScrollView的底部



如何在Espresso测试中向下滚动到ScrollView的底部?谢谢!

如果你需要在ScrollView的底部找到一个视图并与之匹配,那么在需要显示它的任何其他操作之前,只需对其执行scrollTo()操作。

onView(withId(R.id.onBottomOfScrollView))
    .perform(scrollTo(), click());

注意:如果视图已经显示,scrollTo将不起作用,所以你可以在视图显示的情况下安全地使用它

对我来说,当使用nestedScrollview时,我只是向上滑动(如果你想往下)..下面是一个示例调用:

onView(withId(R.id.nsv_container))
                .perform(swipeUp());

为了完整(基于Morozov的回答),您可以传递自定义的ViewAction而不是scrollTo(),这允许使用NestedScrollView:

ViewAction customScrollTo = new ViewAction() {
    @Override
    public Matcher<View> getConstraints() {
        return allOf(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE), isDescendantOfA(anyOf(
            isAssignableFrom(ScrollView.class),
            isAssignableFrom(HorizontalScrollView.class),
            isAssignableFrom(NestedScrollView.class)))
        );
    }
    @Override
    public String getDescription() {
        return null;
    }
    @Override
    public void perform(UiController uiController, View view) {
        new ScrollToAction().perform(uiController, view);
    }
};

并像这样使用:

onView(withId(R.id.onBottomOfScrollView)).perform(customScrollTo, click());

也可以试试:

public Matcher<View> getConstraints() {
return allOf(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE), isDescendantOfA(anyOf(
        isAssignableFrom(ScrollView.class), isAssignableFrom(HorizontalScrollView.class), isAssignableFrom(NestedScrollView.class))));

如果您在android.support.v4.widget中有一个视图。NestedScrollView代替scrollView scrollTo()不起作用

最新更新