package Ġcom . h jq . base Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . fragment . app . Fragment Pager Adapter Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠĠĠ Ġauthor Ġ: ĠAndroid Ġ è½® åŃĲ åĵ ¥ Ċ Ġ* ĠĠĠ Ġgithub Ġ: Ġhttps :// github . com / getActivity / Android Project - Kotlin Ċ Ġ* ĠĠĠ Ġtime ĠĠ Ġ: Ġ 2 0 1 8 / 1 0 / 1 8 Ċ Ġ* ĠĠĠ Ġdesc ĠĠ Ġ: ĠFragment Pager Adapter Ġ å°ģè£ħ Ċ Ġ*/ Ċ @ Suppress (" deprecation ") Ċ open Ġclass ĠFragment Pager Adapter < F Ġ: ĠFragment > Ġconstructor ( manager : ĠFragment Manager ) Ġ: ĊĠĠĠ ĠFragment Pager Adapter ( manager , ĠBE HAV IOR _ RE SU ME _ ONLY _ CURRENT _ FRAGMENT ) Ġ{ ĊĊĠĠĠ Ġ/** ĠFragment Ġ éĽĨåĲĪ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġfragment Set : ĠMutable List < F > Ġ= ĠArrayList () ĊĊĠĠĠ Ġ/** ĠFragment Ġ æłĩé¢ĺ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġfragment Title : ĠMutable List < CharSequence ?> Ġ= ĠArrayList () ĊĊĠĠĠ Ġ/** Ġå½ĵåīį æĺ¾ç¤º çļĦ Fragment Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġshow Fragment : ĠF ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** Ġå½ĵåīį ĠView Pager Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġview Pager : ĠView Pager ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** Ġè®¾ç½® æĪĲ æ ĩĴ åĬłè½½ æ¨¡å¼ı Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġlazy Mode : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġconstructor ( activity : ĠFragment Activity ) Ġ: Ġthis ( activity . support FragmentManager ) ĊĊĠĠĠ Ġconstructor ( fragment : ĠFragment ) Ġ: Ġthis ( fragment . child FragmentManager ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠF Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment Set [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetItem ( position ). hashCode (). to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment Set . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Page Title ( position : ĠInt ): ĠCharSequence ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment Title [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġset Primary Item ( container : ĠViewGroup , Ġposition : ĠInt , Ġ` object `: ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . set Primary Item ( container , Ġposition , Ġ` object `) ĊĠĠĠĠĠĠĠ Ġif Ġ( get Show Fragment () Ġ!== Ġ` object `) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è®°å½ķ å½ĵåīį çļĦ Fragment å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Fragment Ġ= Ġ` object ` Ġas ĠF ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ·»åĬł ĠFragment ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġopen Ġfun Ġadd Fragment ( fragment : ĠF , Ġtitle : ĠCharSequence ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfragment Set . add ( fragment ) ĊĠĠĠĠĠĠĠ Ġfragment Title . add ( title Ġ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġif Ġ( view Pager Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġview Pager ?. off screen Page Limit Ġ= Ġif Ġ( lazy Mode ) Ġcount Ġelse Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å½ĵåīį çļĦ Fragment ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġget Show Fragment (): ĠF ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshow Fragment ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ æŁĲä¸ª ĠFragment ĠçļĦ ç´¢å¼ķ ï¼Ī æ²¡æľī å°± è¿ĶåĽŀ Ġ- 1 ï¼ī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġget Fragment Index ( clazz : ĠClass < out ĠFragment ?> ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( clazz Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġfragment Set . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( clazz . name Ġ== Ġfragment Set [ i ]. java Class . name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Update ( container : ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . start Update ( container ) ĊĠĠĠĠĠĠĠ Ġif Ġ( container Ġis ĠView Pager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è®°å½ķ ç»ĳå®ļ ĠView Pager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager Ġ= Ġcontainer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Lazy Mode () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æ ĩĴ åĬłè½½ æ¨¡å¼ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġset Lazy Mode ( lazy : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Mode Ġ= Ġlazy ĊĠĠĠĠĠĠĠ Ġrefresh Lazy Mode () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĪ·æĸ° åĬłè½½ æ¨¡å¼ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġrefresh Lazy Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Pager Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® æĪĲ æ ĩĴ åĬłè½½ æ¨¡å¼ı ï¼Ī ä¹Łå°±æĺ¯ ä¸į éĻĲåĪ¶ ĠFragment Ġ å±ķç¤º çļĦ æķ°éĩı ï¼ī ĊĠĠĠĠĠĠĠ Ġview Pager ?. off screen Page Limit Ġ= Ġif Ġ( lazy Mode ) Ġcount Ġelse Ġ 1 ĊĠĠĠ Ġ} Ċ }