首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android Robolectric点击RecyclerView项目

Android Robolectric点击RecyclerView项目
EN

Stack Overflow用户
提问于 2014-11-21 09:46:46
回答 3查看 6.5K关注 0票数 22

有没有办法用Robolectric来模拟点击一个RecyclerView项目?

到目前为止,我已经尝试在RecyclerView的第一个可见位置获取View,但始终是null。它的getChildCount()总是返回0,而findViewHolderForPosition总是null。适配器从getItemCount()返回一个非0数字(适配器中肯定有项)。

我使用的是Robolectrial2.4快照。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-22 04:28:26

似乎问题在于,RecyclerView需要在Robolectric中手动测量和布局。调用它可以解决这个问题:

代码语言:javascript
复制
recyclerView.measure(0, 0);
recyclerView.layout(0, 0, 100, 10000);
票数 44
EN

Stack Overflow用户

发布于 2017-03-26 11:31:48

使用Robolectric 3,您可以使用visible():

代码语言:javascript
复制
ActivityController<MyActivity> activityController = Robolectric.buildActivity(MyActivityclass);
activityController.create().start().visible();

ShadowActivity myActivityShadow = shadowOf(activityController.get()); 

RecyclerView currentRecyclerView = ((RecyclerView) myActivityShadow.findViewById(R.id.myrecyclerid));
    currentRecyclerView.getChildAt(0).performClick();

这消除了手动触发视图测量的需要。

票数 10
EN

Stack Overflow用户

发布于 2021-07-06 23:39:36

只需调用

代码语言:javascript
复制
Robolectric.flushForegroundThreadScheduler()

在performClick()之前,确保所有ui操作(包括填充数据集后回收器视图的度量和布局阶段)都已完成

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27052866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档