首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在安卓系统中添加项目之前,有可能得到RecyclerView.Adapter计数的子级估计值吗?

在安卓系统中添加项目之前,有可能得到RecyclerView.Adapter计数的子级估计值吗?
EN

Stack Overflow用户
提问于 2016-03-16 09:32:48
回答 1查看 769关注 0票数 2

在安卓中添加项目之前,是否有可能得到估计的RecyclerView.Adapter计数子值?

我想要的是,在向适配器添加项之前,我想要估计适配器的子节点数,以便估计只能插入的可见项。

比如平板电脑

  1. 一台平板电脑比一部电话更能让许多孩子观看。
  2. 一部手机的孩子可能比平板电脑小

获得估计有多少子项或项(这对我的情况是一个优势),我可以添加到适配器,以便它显然适合我的数据在第一次填充到我的适配器。

EN

回答 1

Stack Overflow用户

发布于 2016-03-16 09:56:48

这也许能行。它应该返回所有可见的ViewHolder子视图。您也可以尝试将firstItem替换为0lastItem替换为recyclerView.getAdapter().getItemCount()

代码语言:javascript
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36031595

复制
相关文章

相似问题

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