能够滚动浏览无休止的循环回收器视图,但无法单击特定列表项

able to scroll through an endless circular recycler view but not able to click on the specific list item

我正在开发一个应用程序,开发人员在其中创建了一个无尽的循环回收器视图。在使用该应用程序时,您可以无休止地滚动浏览回收站视图。为此,您必须单击回收器视图上的任何项目并滚动。一旦在屏幕上看到想要的项目,就必须离开手指,一旦离开手指,屏幕背景就会改变颜色,并在屏幕上显示相应的按钮。现在,这就是我面临的问题。

我已经使用 Espresso 和 Barista 库滚动浏览列表,并且我成功滚动了。我使用以下代码滚动:

咖啡师图书馆:

scrollListToPosition(R.id.recyclerview, 5);

clickListItem(R.id.recyclerview, 6);

此外,Espresso 库:

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

使用上述两种方法,我都可以滚动列表,正确的项目出现在屏幕上,但背景颜色没有改变,相应的按钮也没有显示在屏幕上。 (如果我将此行为与实际设备进行比较,当我用手指向上滑动但不要将手指留在屏幕上时会发生这种情况。一旦我离开手指,颜色就会改变并出现一个按钮)所以,在简而言之,我可以滚动但无法模仿将手指离开屏幕的行为。

使用 Espresso,您可以使用 RecyclerViewActions.actionOnItemAtPosition 并执行长按以达到离开手指的效果:

onView(withId(R.id.content_view)).perform(RecyclerViewActions.actionOnItemAtPosition(5, longClick()));

我找到了上述问题的答案。单击和滚动必须背靠背执行,就像拖放一样:

onView(withId(R.id.recycler_view)).perform(actionOnItemAtPosition(0, longClick()));

onView(withId(R.id.recycler_view)).perform(actionOnItemAtPosition(1, swipeUp()));

使用这段代码,我长按第 0 个元素,然后向上滑动到第 1 个元素。