【发布时间】:2015-10-30 18:38:08
【问题描述】:
我想在我的回收站视图中将列表项自动滚动到顶部(firstVisible 项)并获取该位置的视图,以便我可以从我的片段中突出显示它。
所以,这是我的片段代码的要点:
private void activateNewListItem(int position) {
mLayoutManager().scrollToPositionWithOffset(position, 0);
RecyclerView.ViewHolder viewHolder = mRecyclerView.findViewHolderForLayoutPosition(position);
View view = viewHolder.getItemView();
view.setBackgroundColor(getResources().getColor(R.color.esr_light_grey));
}
如果position 是1、2、3、4 等,mRecyclerView.findViewHolderForPosition(position) 返回一个有效的 ViewHolder,
因为我猜 RecyclerView 已经为 dataSet 中的那些索引绘制了 ViewHolders。
但是,如果我传入position,如 25,mRecyclerView.findViewHolderForPosition(position) 返回 null,因为我假设它还没有被绘制,即使我在它上面调用了 mLayoutManager.scrollToPositionWithOffset(position, 0) .
我可以做些什么来实现这两个目标?
将dataSet索引
position的列表项滚动到firstVisibleItem。获取该 listItem 的 View 或 ViewHolder 对象,以便我可以更改背景或其他任何内容。
【问题讨论】:
标签: android-fragments android-recyclerview android-viewholder android-scroll linearlayoutmanager