45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:设置RecyclerView某Item背景色

设置RecyclerView某Item背景色

2019-03-27 13:45:57 来源:www.45fan.com 【

还是先上效果图,我们在查看小说目录时,可以看到正在阅读的章节字体为红色,其余章节字体为黑色。

设置RecyclerView某Item背景色

主要解决方式来自于 https://blog.csdn.net/qq_34882161/article/details/54944188,感谢!

思路在于将当前章节的章节名传递给adapter,然后调用notifydata,此时会调用onBindViewHolder重新绘制,我们在这个函数中进行比较,把与传入的章节名相同的ViewHolder的章节名的字体颜色设置为红色,其余字体颜色为黑色。与上篇文章不同的是,这里当我点击其他章节时会关闭RecyclerView,因此我并没有使用lastView记录上一个章节的ViewHolder,只要每次打开RecyclerView时重新传入当前章节名就好了。

if (mBookChapter.equals(holder.tvChapter.getText())){
      holder.tvChapter.setTextColor(mView.getResources().getColor(R.color.colorAccent));
    }else{
      holder.tvChapter.setTextColor(mView.getResources().getColor(R.color.black));;
    }

当我们按照上面写好代码后,可以看到章节名已经变为红色了。但是!当我们上下滑动一段距离然后再滑回来时,会偶尔出现章节名并没有出现改变颜色的情况。我们只需要调用RecyclerView的setItemViewCacheSize设置为0即可了。

directoryView.setItemViewCacheSize(0)

除此之外,我们还可以使用

directoryView.scrollToPosition(mBookIndex)

达到模拟滑动的效果,这样我们每次打开章节列表,就可以看到我们当前正在阅读的章节和周围其他的章节了。不过scrollToPosition只是让这个item滑动到我们可以看到的范围内,并不是使这个item处于最顶端,如果你想让item处于最顶端那就请用scrollToPositionWithOffset(postion, 0)吧~

 
 

本文地址:http://www.45fan.com/a/question/99728.html
Tags: 景色 Item RecyclerView
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部