回收站查看关闭屏幕子视图持有人返回null

问题描述 投票:0回答:2

我在recyclerView 20层孩子的意见,在推出仅5可见。如果我尝试访问戏外子视图架,null返回。如何解决这个问题?

RecyclerView.ViewHolder holder = recyclerView.findViewHolderForAdapterPosition(i);

holdernull

android android-recyclerview recycler-adapter recyclerview-layout expandablerecyclerview
2个回答
1
投票

它应该是空,见documentation

再循环(视图):以前用于显示特定适配器的位置数据的视图可以被放置在供以后再使用稍后再次显示相同类型的数据的高速缓存。这可以通过跳过初始布局充气或结构大大提高性能。

所以,可以看到,这是不屏幕上的意见将不会产生,并且因此该方法recyclerView.findViewHolderForAdapterPosition(ⅰ);将返回null。


0
投票

如果你真的需要访问戏外你可以试试我这个代码的项目:

for(int i = 0; i<Objects.requireNonNull(recyclerView.getAdapter()).getItemCount(); i++) {
        if (recyclerView.findViewHolderForLayoutPosition(i) != null) {
            View childView = Objects.requireNonNull(recyclerView.findViewHolderForLayoutPosition(i)).itemView;
            ImageView childCheckThumb = childView.findViewById(R.id.thumb_check);
            TextView namePlateView = childView.findViewById(R.id.name_plate_text_view);
            childCheckThumb.setVisibility(thumb);
        }
    }

在我的情况下,我访问使所有戏外列表成为检查,希望这能解决你的问题

© www.soinside.com 2019 - 2024. All rights reserved.