Android RecyclerView错误的childCount

时间:2018-04-16 14:09:08

标签: android android-recyclerview

我使用适配器创建了一个简单的RecyclerView,有时我需要在适配器外的RecyclerView中获取子视图的数量。

我使用:((LinearLayoutManager) myRecyclerView.getLayoutManager()).getChildCount()。但我从未在RecyclerView中获得真正的观点。例如,我在列表中添加了10个项目并致电adapter.notifyDataSetChanged()。在此之后,我致电((LinearLayoutManager) myRecyclerView.getLayoutManager()).getChildCount(),我得到了4.

有人可以解释我如何在RecyclerView中获得真实的观点数量吗?

1 个答案:

答案 0 :(得分:2)

您可以获得真实的观看次数。如果适配器有10个项目而database.ref().child('posts').once("value").then(function(snapshot) { var i = 0; snapshot.forEach(function(child) { i = i + 1; if (i == 2) { var key = child.key; console.log(key); } }) }); 返回4,则没有任何问题。

模型(适配器)中的项目数和视图数不是相同的东西。

((LinearLayoutManager) myRecyclerView.getLayoutManager()).getChildCount()不包含内存中所有10个项目的视图,在您的情况下只有4个项目。滚动时,它会重复使用这4个视图来显示不同的项目。这样做的目的是提高渲染性能。

如果你想获得10分,那么你应该使用RecyclerView代替。