【发布时间】:2016-08-27 13:54:03
【问题描述】:
目前我有一个视频“播放列表”,我可以将其更改为下一个位置(视频播放器)。
RecyclerView 有这个完整的 ArrayList 并像这样滚动到下一个位置:
mLinearLayoutManager.scrollToPositionWithOffset(position, 10);
完美!现在,我想自动选择(我不想点击这里...)当前位置并突出显示它。
最终产品应如下所示:
每次我在媒体播放器上点击下一个时,下一个项目(位置)都会滚动并突出显示背景。
如何将位置传递给适配器以了解要突出显示/更改背景的位置?请记住...此任务不涉及点击,并且该项目需要始终保持突出显示,只有在选择下一个视频/项目/位置时才会更改。
已解决
对适配器进行一些更改以使其工作
private int highlightItem = 0;
public void toggleSelection(int pos) {
this.highlightItem = pos;
}
toggleSelection(position) 将在我的 Activity 中使用,我一直存储当前位置。
在那之后,我的适配器中的最终更改是:
if (position == highlightItem) {
holder.mMainView.setSelected(true);
} else {
holder.mMainView.setSelected(false);
}
【问题讨论】:
-
不错的解决方案。我正在做类似的事情,但被卡住了,因为我的 RecyclerView 列表中的第一项总是默认突出显示,但我只希望它在被选中时突出显示。有关如何修复的任何想法:stackoverflow.com/questions/38818499/…
-
@AJW 尝试将
highlightItem初始化为 -1,而不是 0 -
holder.mMainView是什么? -
@MrNarendra 这是旧的并且已经解决了。是持有该行的主视图组。
-
@Mr Narendra 初始化值为 -1 解决了这个问题!干杯。
标签: android scroll android-recyclerview adapter highlight