package Ġsu zp 1 9 8 4 . github . io . ex ap ide mo . app . fragments Ċ Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ Ċ import Ġsu zp 1 9 8 4 . github . io . ex ap ide mo . R Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġj acob su Ġon Ġ 9 / 2 5 / 1 6 . Ċ Ġ*/ Ċ Ċ class ĠNum Fragment 2 Adapter ( private Ġval Ġm FragmentManager : ĠFragment Manager ) Ġ: ĠNum Fragment Base Adapter () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠNum Fragment 2 Adapter :: class . java . name ĊĠĠĠ Ġprivate Ġval ĠCOUNT Ġ= Ġ 1 0 0 ĊĊĠĠĠ Ġprivate Ġvar Ġm ViewHolder Count Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠNum Fragment Base Adapter . Number ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewHolder Count ++ ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" --- ĠonCreate ViewHolder : Ġtype Ġ$ view Type , Ġcount : Ġ$ m ViewHolder Count ") ĊĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . num _ fragment _ item , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġval Ġroot Container Ġ= Ġview Ġas ĠViewGroup ĊĊĠĠĠĠĠĠĠ Ġval Ġinner Container Ġ= ĠFrame Layout ( parent . context ) ĊĠĠĠĠĠĠĠ Ġinner Container . layout Params Ġ= ĠFrame Layout . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT ) ĊĊĠĠĠĠĠĠĠ Ġinner Container . minimum Height Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġinner Container . id Ġ= ĠView . generate View Id () ĊĊĠĠĠĠĠĠĠ Ġroot Container . addView ( inner Container ) ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠNumber Fragment () ĊĠĠĠĠĠĠĠ Ġview . setTag ( fragment ) ĊĊĠĠĠĠĠĠĠ Ġnotify ViewHolder Create ( view Type ) ĊĠĠĠĠĠĠĠ Ġnotify ViewHolder Count Changed ( m ViewHolder Count ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠNum Fragment Base Adapter . Number ViewHolder ( view , Ġinner Container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠNum Fragment Base Adapter . Number ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnumber Fragment Ġ= Ġholder . item View . tag Ġas ĠNumber Fragment ĊĠĠĠĠĠĠĠ Ġnumber Fragment . number Ġ= Ġposition . toString () ĊĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" fragment : Ġ# " Ġ+ Ġnumber Fragment . number Ġ+ Ġ" Ġis Added Ġ" Ġ+ Ġnumber Fragment . is Added ) ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" fragment : Ġ# " Ġ+ Ġnumber Fragment . number Ġ+ Ġ" Ġis Detached Ġ" Ġ+ Ġnumber Fragment . is Detached ) ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" fragment Ġ# " Ġ+ Ġnumber Fragment . number Ġ+ Ġ" ĠisIn Layout Ġ" Ġ+ Ġnumber Fragment . isIn Layout ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! number Fragment . is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FragmentManager . beginTransaction (). replace ( holder . fragment Container . id , Ġnumber Fragment ). commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m FragmentManager . fragments Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Attached Fragment Changed ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Attached Fragment Changed ( m FragmentManager . fragments . size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCOUNT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Re cyc led ( view Holder : ĠNum Fragment Base Adapter . Number ViewHolder ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Re cyc led ( view Holder ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( view Holder !!. item View . tag Ġ!= Ġnull Ġ&& ĠviewHolder . item View . tag Ġis ĠNumber Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠviewHolder . item View . tag Ġas ĠNumber Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" && & Ġon View Re cyc led : Ġ" Ġ+ Ġfragment . number ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" && & Ġ# " Ġ+ Ġfragment . number Ġ+ Ġ" Ġis Added Ġ" Ġ+ Ġfragment . is Added ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" && & Ġ# " Ġ+ Ġfragment . number Ġ+ Ġ" Ġis Detached Ġ" Ġ+ Ġfragment . is Detached ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" && & Ġ# " Ġ+ Ġfragment . number Ġ+ Ġ" ĠisIn Layout Ġ" Ġ+ Ġfragment . isIn Layout ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ