RecyclerView 的 getChildCount() 和 getChildAt() return 为零
getChildCount() and getChildAt() return zero for RecyclerView
我正在尝试计算 RecyclerView 子项的数量。我试过这个:
myRView.getChildCount();
还有这个:
LinearLayoutManager lm = ((LinearLayoutManager)myRViews.getLayoutManager());
lm.getChildCount();
我需要在某个位置获得一个子视图,所以这就是我需要这个的原因。如果我调用 getChildAt(index)
我永远不会得到任何子视图。
这两种方法return 0. 还有什么方法可以从 RecyclerView 获取子视图?我的物品显示正确,一切正常。我在创建适配器并将其设置为 RecyclerView 后调用这些方法。感谢您的帮助。
您可以使用适配器的 getItemCount() 函数。
myRView.getAdapter.getItemCount();
我假设您在计算布局之前调用这些方法。
设置适配器后,布局将在下一次遍历视图树时发生。可以考虑加一个ViewTreeObserver。
当视图未准备好时调用该函数,这就是它 returns 零的原因,使用 post() 方法会有所帮助。
myRView.post(new Runnable() {
@Override
public void run() {
Log.show("myRView.post " + myRView.getChildCount());
View childView = myRView.getChildAt(0);
}
});
getChildCount()
如果您忘记将 LayoutManager 设置为 RecyclerView,则可能 return0。
myRView.setLayoutManager(mLayoutManager);
我正在尝试计算 RecyclerView 子项的数量。我试过这个:
myRView.getChildCount();
还有这个:
LinearLayoutManager lm = ((LinearLayoutManager)myRViews.getLayoutManager());
lm.getChildCount();
我需要在某个位置获得一个子视图,所以这就是我需要这个的原因。如果我调用 getChildAt(index)
我永远不会得到任何子视图。
这两种方法return 0. 还有什么方法可以从 RecyclerView 获取子视图?我的物品显示正确,一切正常。我在创建适配器并将其设置为 RecyclerView 后调用这些方法。感谢您的帮助。
您可以使用适配器的 getItemCount() 函数。
myRView.getAdapter.getItemCount();
我假设您在计算布局之前调用这些方法。
设置适配器后,布局将在下一次遍历视图树时发生。可以考虑加一个ViewTreeObserver。
当视图未准备好时调用该函数,这就是它 returns 零的原因,使用 post() 方法会有所帮助。
myRView.post(new Runnable() {
@Override
public void run() {
Log.show("myRView.post " + myRView.getChildCount());
View childView = myRView.getChildAt(0);
}
});
getChildCount()
如果您忘记将 LayoutManager 设置为 RecyclerView,则可能 return0。
myRView.setLayoutManager(mLayoutManager);