我正在尝试计算RecyclerView儿童。我试过这个:
myRView.getChildCount();
而且:
LinearLayoutManager lm = ((LinearLayoutManager)myRViews.getLayoutManager());
lm.getChildCount();
我需要让孩子在某个位置查看,这就是我需要它的原因。如果我打电话给getChildAt(index)
我从来没有得到任何孩子视图。
这两种方法都返回0.如何从RecyclerView获取子视图?我的项目显示正确,一切正常。我在创建适配器并将其设置为RecyclerView后调用这些方法。谢谢你的帮助。
答案 0 :(得分:6)
您可以使用适配器getItemCount()函数。
myRView.getAdapter.getItemCount();
答案 1 :(得分:4)
我假设您在计算布局之前调用这些方法。
设置适配器时,布局将在下一个视图树遍历中进行。您可以考虑添加ViewTreeObserver。
答案 2 :(得分:2)
getChildCount()
可能返回0。
myRView.setLayoutManager(mLayoutManager);
答案 3 :(得分:1)
当视图未准备就绪时调用该函数,这就是为什么它返回零,使用post()方法会有所帮助。
myRView.post(new Runnable() {
@Override
public void run() {
Log.show("myRView.post " + myRView.getChildCount());
View childView = myRView.getChildAt(0);
}
});