如何点击Android Espresso中显示屏外的列表元素?

时间:2017-04-20 14:25:27

标签: android scrollto android-espresso

我有一个ID为“listview”的列表视图,显示了30个ID为“bground”的项目。我可以轻松点击第一项:

ViewInteraction item = onView(
    allOf(withId(R.id.bground),
        childAtPosition(withId(R.id.listview), 1),
        isDisplayed()));
item.perform(click());

但是如果我尝试单击第5个元素(仅使用childAtPosition中的索引5),我会得到RuntimeException,因为视图的区域不会显示给用户。

好的,我首先必须先将元素滚动到屏幕上。我的任何编码

onView (...).perform(scrollTo()) 

被拒绝,因为我必须使用onData。和我的任何编码

onData (...).perform(scrollTo()) 

导致AmbiguousViewMatcherException。

知道如何使用scrollTo或者如何点击下面的元素吗?

谢谢和最诚挚的问候 格哈德

1 个答案:

答案 0 :(得分:0)

为了点击listView我们应该使用onData而不是onView,尽管我已经在recycyler视图中使用

实现了类似的行为
onView(withRecyclerView(RecycylerViewId).
                atPositionOnView(0, Viewtoclickinsiderecyclerview)).
                perform(scrollTo(), click());

在listview中你可能只需要用onData替换onView

无论如何,您可以使用以下链接了解如何使用listview实现 https://google.github.io/android-testing-support-library/docs/espresso/lists/