package Ġcom . zw apps . over scroll container _ android Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . zw apps . over scroll container . Over Scroll Container Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠimageView : ĠImageView Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById < ImageView >( R . id . image ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Click Ġimage ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġre cyclerView : ĠRecyclerView Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById < RecyclerView >( R . id . recyclerview ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġre cyclerView Container : ĠOver Scroll Container Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById < Over Scroll Container >( R . id . recyclerview _ container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġscroll View : ĠScroll View Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById < ScrollView >( R . id . scroll view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcontent View : ĠLinearLayout Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById < LinearLayout >( R . id . content _ view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġscroll View Container : ĠOver Scroll Container Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById < Over Scroll Container >( R . id . scroll view _ container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠMy Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġoriginal Height Ġ= Ġ- 1 F ĊĊĠĠĠĠĠĠĠ Ġre cyclerView Container . over Scroll Listener Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( original Height Ġ== Ġ- 1 F ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Height Ġ= ĠimageView . meas ured Height . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . pivot Y Ġ= Ġ 0 F ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . scale Y Ġ= Ġ( original Height Ġ+ Ġre cyclerView Container . child . translation Y ) Ġ/ Ġoriginal Height ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . scale X Ġ= ĠimageView . scale Y ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġscroll View Container . over Scroll Listener Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( original Height Ġ== Ġ- 1 F ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Height Ġ= ĠimageView . meas ured Height . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . pivot Y Ġ= Ġ 0 F ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . scale Y Ġ= Ġ( original Height Ġ+ Ġscroll View . translation Y ) Ġ/ Ġoriginal Height ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . scale X Ġ= ĠimageView . scale Y ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcolors Ġ= Ġmutable ListOf < Int >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors . add ( Color . BLUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors . add ( Color . RED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors . add ( Color . GREEN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠMy Adapter ( colors ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġcolors . forEach Indexed Ġ{ Ġindex , Ġcolor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠTextView ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , Ġ 2 5 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( Color . GRAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġ 2 0 F ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" ScrollView Ġ- Ġ$ index " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" ScrollView Ġclick Ġ- Ġ$ index ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View . addView ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ