Lor*_*ter 8 android android-espresso android-recyclerview
我有一个Android应用程序,它有一个带有N个元素的RecyclerView,当这个RecyclerView在滚动时到达结束时,会添加更多元素(因此,它是一个无限列表,当滚动到达底部时加载数据).
我想测试一下,但我还没有办法做到这一点.我使用具有scrollToPosition的RecyclerViewActions,但即使我放置了最后一个位置,也没有达到结束(因为每个元素的高度很高).
谁知道我怎么能这样做?
Jos*_*ird 18
我用下面的内容滚动到我的底部RecyclerView.
activity = mActivityTestRule.launchActivity(startingIntent);
onView(withId(R.id.recyclerView))
.perform(RecyclerViewActions.scrollToPosition(activity.recyclerView.getAdapter().getItemCount() - 1));
Run Code Online (Sandbox Code Playgroud)
然后,您必须使用空闲资源(或Thread.sleep())在加载更多数据时再次调用它.
小智 11
你可以实现ViewAction。像这样:
class ScrollToBottomAction : ViewAction {
override fun getDescription(): String {
return "scroll RecyclerView to bottom"
}
override fun getConstraints(): Matcher<View> {
return allOf<View>(isAssignableFrom(RecyclerView::class.java), isDisplayed())
}
override fun perform(uiController: UiController?, view: View?) {
val recyclerView = view as RecyclerView
val itemCount = recyclerView.adapter?.itemCount
val position = itemCount?.minus(1) ?: 0
recyclerView.scrollToPosition(position)
uiController?.loopMainThreadUntilIdle()
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它:
onView(withId(R.id.recyclerView)).perform(ScrollToBottomAction())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8617 次 |
| 最近记录: |