LoginSignup
1
0

More than 1 year has passed since last update.

【Android】RecyclerViewで最後のアイテムが完全に表示されているかを検知する方法

Last updated at Posted at 2023-03-21

はじめに

皆さん、ごきげんよう!れぶです!

今回の記事では、RecyclerViewをスクロールした場合、最後のアイテムが完全に表示されているかを検知する方法について書きます。

2分以内で読めます。それでは、参りましょう!!

開発環境

  • MacBook Air
  • Android Studio Electric Eel | 2022.1.1
  • Kotlin
  • compileSdkVersion 33
  • minSdkVersion 21

サンプルコード

以下のようにOnScrollListeneronScrolled()内で、RecyclerViewのLayoutManagerに対してfindLastCompletelyVisibleItemPosition()を呼び出します。

MainActivity.kt
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
    override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
        super.onScrolled(recyclerView, dx, dy)

        val layoutManager = recyclerView.layoutManager as LinearLayoutManager
        val totalItemCount = layoutManager.itemCount
        val lastVisibleItem = layoutManager.findLastCompletelyVisibleItemPosition()

        if (lastVisibleItem == totalItemCount - 1) {
            // 最後のアイテムの底までスクロールされた
            // ここに処理を追加する
        }
    }
})

findLastCompletelyVisibleItemPosition()と似たメソッドに、findLastVisibleItemPosition()が存在します。

このfindLastVisibleItemPosition()は、最後に表示されるアイテムの一部が少しでも表示されていれば、その位置を返してしまいます。一方、findLastCompletelyVisibleItemPosition()は最後に完全に表示されているアイテムの位置を返すため、今回はこちらを使用します。

以上です。ありがとうございます。

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0