package Ġcom . im yy q . mv vm . base Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . sl iding panel ayout . widget . Sl iding Pane Layout Ċ import Ġandroidx . sl iding panel ayout . widget . Sl iding Pane Layout . Panel Slide Listener Ċ import Ġcom . im yy q . mv vm . R Ċ import Ġcom . im yy q . mv vm . app . Global Config Ċ import Ġcom . im yy q . mv vm . utils . Density Util . dp 2 px Ċ import Ġcom . im yy q . mv vm . utils . Screen Utils Ċ Ċ abstract Ġclass ĠPar allax Swipe Back Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġ// Ġ çĪ¶ å¸ĥå±Ģ ĊĠĠĠ Ġprivate Ġvar Ġm Sl iding Pane Layout : ĠP ager Enabled Sl iding Pane Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Frame Layout : ĠFrame Layout ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġ èĥĮæĻ¯ åĽ¾ ĊĠĠĠ Ġprivate Ġvar Ġm Be hind ImageView : ĠImageView ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġ éĺ ´ å½± åĽ¾ ĊĠĠĠ Ġprivate Ġvar Ġm Shadow ImageView : ĠImageView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Default Translation X Ġ= Ġ 1 0 0 ĊĠĠĠ Ġprivate Ġvar Ġm Shadow Width Ġ= Ġ 2 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Support Swipe ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Sl iding () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// éĢļè¿ĩ åıį å°Ħ æĿ¥ æĶ¹åıĺ Sl iding Panel ayout çļĦåĢ¼ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Sl iding Pane Layout Ġ= ĠP ager Enabled Sl iding Pane Layout ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġover hang Size Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSl iding Pane Layout :: class . java . getDeclared Field (" m Over hang Size ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġover hang Size . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġover hang Size [ m Sl iding Pane Layout ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Sl iding Pane Layout !!. set Panel Slide Listener ( Sl iding Listener ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Sl iding Pane Layout !!. slider Fade Color Ġ= ĠColor . TRANSP ARENT ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Default Translation X Ġ= Ġdp 2 px ( m Default Translation X . toFloat ()) ĊĠĠĠĠĠĠĠ Ġm Shadow Width Ġ= Ġdp 2 px ( m Shadow Width . toFloat ()) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ èĥĮæĻ¯ ĊĠĠĠĠĠĠĠ Ġval Ġbehind Frame Layout Ġ= ĠFrame Layout ( this ) ĊĠĠĠĠĠĠĠ Ġm Be hind ImageView Ġ= ĠImageView ( this ) ĊĠĠĠĠĠĠĠ Ġm Be hind ImageView !!. layout Params Ġ= ĠFrame Layout . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbehind Frame Layout . addView ( m Be hind ImageView , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ å®¹åĻ¨ ĊĠĠĠĠĠĠĠ Ġval Ġcontainer Layout Ġ= ĠLinearLayout ( this ) ĊĠĠĠĠĠĠĠ Ġcontainer Layout . orientation Ġ= ĠLinearLayout . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġcontainer Layout . set BackgroundColor ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠ Ġcontainer Layout . layout Params Ġ= ĠViewGroup . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Utils . get Screen Width () Ġ+ Ġm Shadow Width , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// you Ġview Ġcontainer ĊĠĠĠĠĠĠĠ Ġm Frame Layout Ġ= ĠFrame Layout ( this ) ĊĠĠĠĠĠĠĠ Ġm Frame Layout !!. set BackgroundColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġm Frame Layout !!. layout Params Ġ= ĠLinearLayout . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayout . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// add Ġshadow ĊĠĠĠĠĠĠĠ Ġm Shadow ImageView Ġ= ĠImageView ( this ) ĊĠĠĠĠĠĠĠ Ġm Shadow ImageView !!. setBackground Resource ( R . drawable . mv vm _ swipe _ back _ shadow ) ĊĠĠĠĠĠĠĠ Ġm Shadow ImageView !!. layout Params Ġ= ĠLinearLayout . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Shadow Width , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Ġ éĺ ´ å½± åľ¨ å·¦ ï¼Į å®¹åĻ¨ åľ¨ åı³ ĊĠĠĠĠĠĠĠ Ġcontainer Layout . addView ( m Shadow ImageView ) ĊĠĠĠĠĠĠĠ Ġcontainer Layout . addView ( m Frame Layout ) ĊĠĠĠĠĠĠĠ Ġcontainer Layout . translation X Ġ= Ġ- m Shadow Width . toFloat () ĊĠĠĠĠĠĠĠ Ġ// Ġæ·»åĬł èĥĮæĻ¯ åĴĮ å®¹åĻ¨ ĊĠĠĠĠĠĠĠ Ġm Sl iding Pane Layout !!. addView ( behind Frame Layout , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġm Sl iding Pane Layout !!. addView ( container Layout , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetContentView ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠsetContentView ( layout Inflater . inflate ( id , Ġnull )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetContentView ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠsetContentView ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Be hind ImageView Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Be hind ImageView !!. scale Type Ġ= ĠImageView . Scale Type . FIT _ XY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Be hind ImageView !!. setImage Resource ( R . drawable . mv vm _ swipe _ back _ shadow _ bg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ çĶ±äºİ è¦ģ å®ŀçİ° ä¾§ æ»ĳ ï¼Į Ġwindow Is Trans luc ent Ġ å¿ħé¡» ä¸º Ġtrue ï¼Į ä½Ĩæĺ¯ è®¾ç½®ä¸º Ġtrue Ġ åĲİ ï¼Į activity Ġ å°± çĽ¸ å½ĵ äºİ åįĬ éĢı æĺİ çļĦ æķĪæŀľ äºĨ ãĢĤ ĊĠĠĠĠ Ġ* Ġ åĽłæŃ¤ ï¼Į åľ¨ æŃ¤ activity ä¹ĭ ä¸ĭçļĦ activity ï¼Į å¹¶ ä¸įä¼ļ èµ° Ġon Stop ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetContentView ( ĊĠĠĠĠĠĠĠ Ġv : ĠView , ĊĠĠĠĠĠĠĠ Ġparams : ĠViewGroup . LayoutParams ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Support Swipe ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Sl iding () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® æł¹ view ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . set ContentView ( m Sl iding Pane Layout , Ġparams ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĨį æ·»åĬł èĩªå·±çļĦ view ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Frame Layout !!. removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Frame Layout !!. addView ( v , Ġparams ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . set ContentView ( v , Ġparams ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ æĶ¯æĮģ ä¾§ æ»ĳ è¿ĶåĽŀ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġis Support Swipe (): ĠBoolean Ġ= ĠGlobal Config . g Is Support Swipe ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠSl iding Listener Ġ: ĠPanel Slide Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Panel Closed ( view : ĠView ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Panel Opened ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġv Ġæ » ĳ åĬ¨ æĹ¶ ä»İ å·¦ åı³ åĪ° åı³ æĺ¯ Ġ 0 - 1 ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Panel Slide ( view : ĠView , Ġv : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// du ang Ġdu ang Ġdu ang Ġ ä½łåı¯ä»¥ åľ¨ è¿ĻéĩĮ åĬłåħ¥ å¾Īå¤ļ çī¹ æķĪ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Be hind ImageView !!. translation X Ġ= Ġv Ġ* Ġm Default Translation X Ġ- Ġm Default Translation X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Be hind ImageView !!. alpha Ġ= Ġ 1 Ġ- Ġv ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Shadow ImageView !!. alpha Ġ= Ġ 1 Ġ- Ġv ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }