Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 回收器视图屏幕外子视图保持架返回空值_Android_Android Recyclerview_Recyclerview Layout_Expandablerecyclerview - Fatal编程技术网

Android 回收器视图屏幕外子视图保持架返回空值

Android 回收器视图屏幕外子视图保持架返回空值,android,android-recyclerview,recyclerview-layout,expandablerecyclerview,Android,Android Recyclerview,Recyclerview Layout,Expandablerecyclerview,我在recyclerView中有20个子视图,在发布时只有5个子视图可见。 如果我尝试访问屏幕外的子视图保持架,则返回null。如何解决这个问题 RecyclerView.ViewHolder holder = recyclerView.findViewHolderForAdapterPosition(i); holder为空。如果您确实需要访问屏幕外的项目,您可以尝试我的以下代码: for(int i = 0; i<Objects.requireNonNull(recyclerView

我在recyclerView中有20个子视图,在发布时只有5个子视图可见。 如果我尝试访问屏幕外的子视图保持架,则返回null。如何解决这个问题

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

holder为空。

如果您确实需要访问屏幕外的项目,您可以尝试我的以下代码:

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);
        }
    }

在我的情况下,我正在访问以使所有屏幕外列表都被选中,希望这可以解决您的问题

它应该为空,请参阅

循环视图:以前用于显示特定项目数据的视图 适配器位置可以放置在缓存中,以便以后重新使用以显示 同一类型的数据稍后将再次显示。这可以大大改善 通过跳过初始布局或构造来实现性能

因此,您可以看到,不在屏幕上的视图将不会生成,因此 方法recyclerView.FindVideWholder进行自适应定位;将返回null。

并且应该为null-文档说:此方法仅检查RecyclerView的子级。如果给定位置的项目未布局,则不会创建新项目。