@ file : Suppress (" Matching Declaration Name ") Ċ Ċ package Ġreactive circ us . flow binding . core Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Check Result Ċ import Ġandroidx . core . widget . Nested ScrollView Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . channels . await Close Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . callback Flow Ċ import Ġkotlinx . coroutines . flow . conf late Ċ import Ġreactive circ us . flow binding . common . check MainThread Ċ Ċ /** Ċ Ġ* ĠCreate Ġa Ġ[ Flow ] Ġof Ġscroll Ġchange Ġevents Ġon Ġthe Ġ[ Nested ScrollView ] Ġinstance . Ċ Ġ* Ċ Ġ* ĠNote : ĠCreated Ġflow Ġkeeps Ġa Ġstrong Ġreference Ġto Ġthe Ġ[ Nested ScrollView ] Ġinstance Ċ Ġ* Ġuntil Ġthe Ġcoroutine Ġthat Ġlaunched Ġthe Ġflow Ġcollector Ġis Ġcancelled . Ċ Ġ* Ċ Ġ* ĠExample Ġof Ġusage : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġnested ScrollView . scroll Change Events () Ċ Ġ* ĠĠĠĠ Ġ. on Each Ġ{ Ġevent Ġ-> Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġ// Ġhandle Ġscroll Ġchange Ġevent Ċ Ġ* ĠĠĠĠ Ġ} Ċ Ġ* ĠĠĠĠ Ġ. launch In ( ui Scope ) Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ @ Check Result Ċ @ Opt In ( Experimental Cor outines Api :: class ) Ċ public Ġfun ĠNested ScrollView . scroll Change Events (): ĠFlow < Scroll ChangeEvent > Ġ= Ġcallback Flow Ġ{ ĊĠĠĠ Ġcheck MainThread () ĊĠĠĠ Ġval Ġlistener Ġ= ĠNested ScrollView . On Scroll ChangeListener Ġ{ Ġv , Ġscroll X , Ġscroll Y , Ġold Scroll X , Ġold Scroll Y Ġ-> ĊĠĠĠĠĠĠĠ Ġtry Send ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScroll ChangeEvent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġv , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll X Ġ= Ġscroll X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Y Ġ= Ġscroll Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Scroll X Ġ= Ġold Scroll X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Scroll Y Ġ= Ġold Scroll Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġset On Scroll ChangeListener ( listener ) ĊĠĠĠ Ġawait Close Ġ{ Ġset On Scroll ChangeListener ( null Ġas ĠNested ScrollView . On Scroll ChangeListener ?) Ġ} Ċ }. conf late () Ċ Ċ public Ġdata Ġclass ĠScroll ChangeEvent ( ĊĠĠĠ Ġpublic Ġval Ġview : ĠView , ĊĠĠĠ Ġpublic Ġval Ġscroll X : ĠInt , ĊĠĠĠ Ġpublic Ġval Ġscroll Y : ĠInt , ĊĠĠĠ Ġpublic Ġval Ġold Scroll X : ĠInt , ĊĠĠĠ Ġpublic Ġval Ġold Scroll Y : ĠInt Ċ ) Ċ