我正在使用RecyclerView,其中我有行数,每行都有进度条更新。前四行是可见的。当行数大于4时我在我的recyclerview上调用getChildAt(pos)来获取View,它返回null。请帮助。
答案 0 :(得分:1)
您可以为适配器中的每个项目设置标签:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
super.onBindViewHolder(holder,position);
holder.yourView.setTag(yourTag);
}
然后,您可以在活动中使用以下代码:
RecyclerView recyclerView=(RecyclerView)(findViewById(R.id.recycler));
View yourView=(View)(recyclerView.findViewWithTag(YourTag));
答案 1 :(得分:1)
由于recyclerView.getChildAt(position)在上面的场景中给我null,我终于使用下面的行解决了。对于遇到类似情况的人来说,这可能很有用。
RecyclerView.ViewHolder holder = (RecyclerView.ViewHolder)
recyclerView.findViewHolderForAdapterPosition(position);
if (null != holder) {
holder.itemView.findViewById(R.id.xyz).setVisibility(View.VISIBLE);
}
答案 2 :(得分:0)
当您的回收器视图中有不止一页的数据并且您正在使用 df['total'] = df.filter(like='column').sum(1)
方法时,它会抛出空指针异常。这是因为当位置大于显示器上可见项目的数量时,getChildAt()
将不起作用,因为它只能到达屏幕上显示的视图。
因此,使用 getChildAt()
获取给定位置的视图。