我有recyclerview
因为我需要为第一项&{39} button
着色。
以便我在notifyDataSetChanged()
View viewItem = rvProductList.getLayoutManager().findViewByPosition(0);
但viewItem
正在获得null
。
有没有办法获得第一项?
答案 0 :(得分:1)
也许位置0的视图在某个位置被回收。如果你想清楚地测试它。在两种情况下检查null viewItem:
当您看到第1项时,将循环播放视图向上滚动到顶部。然后调用它并检查null
View viewItem = rvProductList.getLayoutManager().findViewByPosition(0);
更新解决方案:
解决方案设置标志,以便知道何时要为第一个项目着色。并在onBindViewHolder()
方法中执行此操作
@Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
// I suppose that flag is true then we color 1st item
if(position == 0 && flag) {
// color your button here
} else {
// ...
}
}
希望有所帮助!