使用Espresso滚动Recycler视图

7

我有一个异构的 RecyclerView,我正试图将其滚动到第30个位置的项。我的测试通过了,但实际上我看不到屏幕滚动。

onView(withId(R.id.content_view))
    .perform(RecyclerViewActions.scrollToPosition(30));

这是我正在做的滚动操作。

3个回答

13

使用 scrollToHolder()

onView(withId(R.id.recyclerViewId))
    .perform(scrollToHolder(viewHolderMatcher(some_parameter_to_match)));

viewHolderMatcher(some_parameter_to_match) 返回 Matcher<RecyclerView.ViewHolder>,表示 RecyclerView 中 holder/item 的位置。

或者只通过位置匹配:

onView(withId(rvLayoutId))
    .perform(actionOnItemAtPosition(256, scrollTo()));

最后一个是来自这里


2
告诉它关于ViewHolder。
onView(withId(R.id.recyclerview)).perform(
        RecyclerViewActions.scrollToPosition<RecyclerView.ViewHolder>(
          YOUR_POSITION
        )
      )

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接