Takuji->find;

株式会社はてなでアプリケーションエンジニアやってます、技術的な記事を書いているつもり

RecyclerView.ItemDecorationでgetItemOffsetsの値を変えた時、レイアウトはどう動くか

雑なメモ

RecyclerView.ItemDecoration を使ってitemのoffset(bottom)を調整する機会があった。

ある位置を基準にしつつ、offsetを調整+スクロールして基準位置にあったitemが同じ位置に見えている必要があったのだが、なぜかズレる。

よく見てみたら見えている一番上のitemの位置が動かず、下にズレているのだ。

どうやら今見えている一番上のitemを基準にレイアウトが決定されるようだった。

仕方がないので基準位置より上にあるViewのoffsetを計算してその分だけスクロールすることにした。