【kotlin】NestedScrollViewで最下部までスクロールした際に処理を実行する


状況

NestedScrollViewで最下部までスクロールした際に処理を実行したい

解決方法

setOnScrollChangeListenerを利用してスクロール位置を検出する

 //Fragment
 it.scrollView.setOnScrollChangeListener { v, _, scrollY, _, _ ->
   it.isScrolled = (v as ViewGroup).getChildAt(0).bottom <= (scrollY + v.height)
 }


 //xml内にボタンを設置
 <data>
       <variable
           name="isScrolled"
           type="Boolean" />
 </data>

 <TextView
    android:id="@+id/button"
    android:enabled="@{isScrolled}"/>

拡張関数にすればもっと使いまわせそう。

setOnScrollChangeListener