在Android中添加项目之前,是否有可能获得估计的RecyclerView.Adapter计数的子项?
我想要的是,在向其添加项目之前,我想估计适配器的子计数,以便估计我只能插入的可见项目。
类似于平板电脑的例子
估计有多少孩子或物品(对我来说是一个优势)我可以添加到适配器,以便它可以在我的数据的第一批数据中明显地适合我的适配器。
答案 0 :(得分:1)
这可能有用。它应该返回可见的ViewHolder的所有子视图。您也可以尝试将firstItem
替换为0
,将lastItem
替换为recyclerView.getAdapter().getItemCount()
:
private static int getRecyclerViewChildCount(RecyclerView recyclerView) {
//This below section is a bit clumsy, but the findFirstVisibleItem() etc. methods
//Only apply to LinearLayoutManagers and their subclasses.
try {
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
} catch (ClassCastException e) {
throw new IllegalArgumentException("LayoutManager must be of type " + LinearLayoutManager.class.getSimpleName());
}
final int firstItem = layoutManager.findFirstVisibleItemPositiob();
final int lastItem = layoutManager.recyclverView.getLayoutManager().findLastVisibleItemPosition();
int viewCount = 0;
for (int i = firstItem; i < lastItem; i++) {
View view = recyclerView.findViewHolderForAdapterPosition(i).itemView;
viewCount += view.getChildCount();
}
return viewCount;
}