可以滚动浏览无尽的循环回收器视图,但不能单击特定的列表项

时间:2019-01-19 07:47:07

标签: android android-espresso

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

我已使用Espresso和Barista库在列表中滚动,并且滚动成功。我使用以下代码进行滚动:

咖啡师库:

scrollListToPosition(R.id.recyclerview, 5);

clickListItem(R.id.recyclerview, 6);

还有Espresso库:

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

使用上述两种方法,我都可以滚动列表,并且正确的项目出现在屏幕上,但是背景颜色没有更改,相应的按钮也没有显示在屏幕上。 (如果我将这种行为与实际设备进行比较,则是在我用手指向上滑动但不将手指留在屏幕上时发生的。一旦我离开手指,颜色就会发生变化,并出现一个按钮)简短地说,我能够滚动但无法模仿将手指从屏幕上移开的行为。

2 个答案:

答案 0 :(得分:0)

使用Espresso,您可以使用RecyclerViewActions.actionOnItemAtPosition并长按一下以使手指离开:

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

答案 1 :(得分:0)

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

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

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

使用此代码,我长按了第0个元素,然后向上滑动到第一个元素。