package Ġcom . cri ms on . mv vm . binding . transformer Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ Ċ /** Ċ Ġ* Ġ@ author Ġcri ms on Ċ Ġ* Ġ@ date ĠĠĠ 2 0 2 0 / 5 / 2 7 Ċ Ġ* ĠView Pager 2 ĠAlpha Transformer Ċ Ġ*/ Ċ class ĠView Pager 2 Alpha Transformer ( val Ġmin Alpha : ĠFloat Ġ= Ġ 0 . 5 f ) Ġ: ĠView Pager 2 . Page Transformer Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġtransform Page ( page : ĠView , Ġposition : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġpage . scale X Ġ= Ġ 0 . 9 9 9 f Ġ// hack ĊĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġ- 1 ) Ġ{ Ġ// Ġ[- Infinity ,- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . alpha Ġ= Ġmin Alpha ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( position Ġ<= Ġ 1 ) Ġ{ Ġ// Ġ[- 1 , 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// [ 0 ï¼Į - 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// [ 1 , min ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfactor : ĠFloat Ġ= Ġmin Alpha Ġ+ Ġ( 1 Ġ- Ġmin Alpha ) Ġ* Ġ( 1 Ġ+ Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage . alpha Ġ= Ġfactor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// [ 1 ï¼Į 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// [ min , 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfactor : ĠFloat Ġ= Ġmin Alpha Ġ+ Ġ( 1 Ġ- Ġmin Alpha ) Ġ* Ġ( 1 Ġ- Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage . alpha Ġ= Ġfactor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// Ġ( 1 , + Infinity ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . alpha Ġ= Ġmin Alpha ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }