android - 使用 Espresso 滚动 Recycler View

标签 android android-recyclerview android-espresso android-espresso-recorder

我有一个异构的回收器 View ,我试图将它滚动到位置 30 的项目。我的测试通过了,但我看不到屏幕实际滚动。

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

这就是我滚动的目的。

最佳答案

使用 scrollToHolder() :

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

哪里viewHolderMatcher(some_parameter_to_match)返回 Matcher<RecyclerView.ViewHolder>即持有人/元素在 RecyclerView 中的位置。

或仅按位置:

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

最后一个来自here .

关于android - 使用 Espresso 滚动 Recycler View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47085264/

相关文章:

android - astuetz/PagerSlidingTabStrip 旋转设备时选择了错误的选项卡

android - 为什么objectAnimator不调用setter方法

android - gridview.extent 不会在 flutter 中滚动

android - RecyclerView.Adapter 中的 ViewHolder 不特定于位置

java - Android Espresso 拖放错误注入(inject)事件

android - 如何使用 Espresso 检查 TextinputLayout 的错误

java - 如何将数组添加到firebase数据库中的项目?

android - GridLayoutManager spanSizeLookup 错误

android - 如何使用 Espresso 执行 EditText 的 actionDone 事件

android - Android RecyclerView 中 setTag(...)/getTag(...) 的缺点和替代方案