はじめに
今回はAndroid ViewでRecyclerViewの最上位に任意のアイテムまでスクロールする方法を紹介します
本文
早速ですが、コードは下記のようになります
binding.recycler.post {
val smoothScroller: RecyclerView.SmoothScroller =
object : LinearSmoothScroller(context) {
override fun getVerticalSnapPreference(): Int {
return SNAP_TO_START
}
}
smoothScroller.targetPosition = it
binding.recycler.layoutManager?.startSmoothScroll(smoothScroller)
}
postはViewの準備ができたときに呼ばされるコールバックになっており、その中でRecylcerViewのSmoothScorllerに対してSNAP_TO_START
を設定します
こうすることでSmoothScrollを呼び出したときに該当のアイテムがトップに来るようにスクロールしてくれます
最後に
よくあるScrollToではギリギリ見えるところまでしかスクロールしてくれなかったので躓いてしまいました
備忘録として残しておきますが、どなたかのお役に立てたら幸いです