Android 浓缩咖啡:如何滚动到ScrollView的底部

Android 浓缩咖啡:如何滚动到ScrollView的底部,android,android-espresso,Android,Android Espresso,如何在浓缩咖啡测试中向下滚动到ScrollView的底部? 谢谢 如果需要在ScrollView的底部找到一个视图并与之匹配,则只需在需要显示该视图的任何其他操作之前对其执行scrollTo()操作即可 onView(withId(R.id.onBottomOfScrollView)) .perform(scrollTo(), click()); 注意:如果视图已经显示,scrollTo将不起作用,因此您可以在显示视图时安全地使用它 你也可以试试: public Matcher<

如何在浓缩咖啡测试中向下滚动到ScrollView的底部?
谢谢

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

onView(withId(R.id.onBottomOfScrollView))
    .perform(scrollTo(), click());
注意:如果视图已经显示,scrollTo将不起作用,因此您可以在显示视图时安全地使用它

你也可以试试:

public Matcher<View> getConstraints() {
return allOf(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE), isDescendantOfA(anyOf(
        isAssignableFrom(ScrollView.class), isAssignableFrom(HorizontalScrollView.class), isAssignableFrom(NestedScrollView.class))));
public Matcher getConstraints(){
返回allOf(带有效可见性(ViewMatchers.Visibility.VISIBLE),IsDescendaToFa(任意(
isAssignableFrom(ScrollView.class)、isAssignableFrom(HorizontalScrollView.class)、isAssignableFrom(NestedScrollView.class));
如果您在android.support.v4.widget.NestedScrollView中有一个视图,而不是scrollView scrollTo(),则该视图不起作用。

为了完整性(根据莫罗佐夫的回答),您可以传递一个自定义的
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);
    }
};

对于我来说,在使用nestedScrollview时,我只需向上滑动(如果您想向下移动)…下面是一个示例调用:

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

我还没有试过,但是试一试,如果你知道你的子元素,就用issueworks写一个新问题——如果你不知道最后一个元素怎么办?
perform(swipeDown())
,这救了我一天的命!@IgorGanapolsky看看我应该把这个方法放在哪里/调用它?我相信这个答案对于不完全知道的人来说是缺少信息的。请检查完整的答案
onView(withId(R.id.nsv_container))
                .perform(swipeUp());