package Ġcom . hl . u ikit . refresh Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġcom . hl . u ikit . R Ċ import Ġcom . sc wang . smart . refresh . layout . constant . Spinner Style Ċ Ċ /** Ċ Ġ* Ġ@ Author Ġ Ġ å¼ł ç£ Ĭ Ġ Ġon ĠĠ 2 0 2 1 / 0 1 / 1 2 Ġat Ġ 1 1 : 4 4 Ċ Ġ* ĠEmail : Ġ 9 1 3 3 0 5 1 6 0 @ qq . com Ċ Ġ*/ Ċ open Ġclass ĠCommon Refresh Header Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 ) ĊĠĠĠ Ġ: ĠL ot tie Refresh Header Footer ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Common Refresh Header " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġinit Bottom Offset Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġval Ġheader Or Footer Layout : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠR . layout . u ikit _ layout _ lott ie _ refresh _ header ĊĊĠĠĠ Ġoverride Ġval Ġhas Lot tie Animation View : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġget Spinner Style (): ĠSp inner Style Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSp inner Style . Translate ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Moving ( is Dragging : ĠBoolean , Ġpercent : ĠFloat , Ġoffset : ĠInt , Ġheight : ĠInt , Ġmax Drag Height : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Moving : Ġ æŃ£åľ¨ ä¸ĭ æĭī ä¸Ń == $ is Dragging , Ġ çĻ¾ åĪĨ æ¯Ķ Ġ== Ġ$ percent , Ġ åģı ç§» Ġ== Ġ$ offset , Ġ å¤´ éĥ¨ é«ĺåº¦ Ġ== Ġ$ height , Ġ æľĢå¤§ æĭ ĸ åĬ¨ é«ĺåº¦ Ġ== $ max Drag Height ") ĊĠĠĠĠĠĠĠ Ġensure Lot tie Animation View Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// is Dragging Ġè¡¨ç¤º ä¸ĭ æĭī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Dragging ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ĭ æĭī èĩ³ Ġlo tt ie Animation View Ġ é¡¶ éĥ¨ çļĦ è·Ŀç¦» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Bottom Ġ= Ġheight Ġ+ Ġinit Bottom Offset Ġ- Ġlo tt ie Animation View . top ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// lott ie Animation View ĠçļĦ é¡¶ éĥ¨ æĺ¾ç¤º åĲİ è¿ĺ åı¯ä»¥ æĭ ĸ æĭ ½ çļĦ è·Ŀç¦» ( éľĢè¦ģ åĩı åİ» åºķ éĥ¨ åĪĿå§ĭ åģı ç§» çļĦ è·Ŀç¦» ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Calculate Offset Ġ= Ġlo tt ie Animation View . top Ġ- Ġinit Bottom Offset ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Offset Ġ= Ġoffset Ġ- Ġoffset Bottom ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Progress Ġ= Ġif Ġ(! pull Animation Source . is Can Use ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ĭ æĭī åĬ¨çĶ» ä¸įåı¯ çĶ¨ æĹ¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Ġ<= Ġheight ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ĭ æĭī æľª è¶ħè¿ĩ å¤´ å¸ĥå±Ģ æĹ¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ/ Ġheight . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ĭ æĭī åĬ¨çĶ» åı¯çĶ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Offset Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä¸ĭ æĭī è¶ħè¿ĩ Ġlo tt ie Animation View Ġ é¡¶ éĥ¨ æĹ¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Offset Ġ/ Ġmax Calculate Offset . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Moving : Ġå½ĵåīį åĬ¨çĶ» è¿Ľ åº¦ Ġ== Ġ$ animation Progress ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie Animation View . visibility Ġ= Ġif Ġ( animation Progress Ġ<= Ġ 0 ) ĠView . IN VISIBLE Ġelse ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo tt ie Animation View . progress Ġ= Ġanimation Progress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }