リサイクラー ビューでリスト アイテムを一番上 (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));
}
1、2、3、4などの場合、有効な ViewHolder を返します。これposition
は 、RecyclerView が dataSet 内のこれらのインデックスに対して ViewHolder を描画したと推測するためです。mRecyclerView.findViewHolderForPosition(position)
ただし、position
たとえば、25を渡すと、 mRecyclerView.findViewHolderForPosition(position)
null が返されます。これは、その上で呼び出したにもかかわらず、まだ描画されていないと想定しているmLayoutManager.scrollToPositionWithOffset(position, 0)
ためです。
この 2 つのことを達成するにはどうすればよいでしょうか。
dataSet インデックスのリスト項目を firstVisibleItemまでスクロールし
position
ます。その listItem の View または ViewHolder オブジェクトを取得して、背景などを変更できるようにします。