package Ġcom . xf hy . g ank . fragment Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . View Ċ import Ġcom . xf hy . g ank . R Ċ import Ġcom . xf hy . g ank . activity . G ank Details Activity Ċ import Ġcom . xf hy . g ank . adapter . G ank Common Adapter Ċ import Ġcom . xf hy . g ank . data . bean . G ank Common Bean Ċ import Ġcom . xf hy . g ank . presenter . G ank Common Contract Ċ import Ġcom . xf hy . g ank . presenter . G ank Common Presenter Ċ import Ġcom . xf hy . library . adapter . Base Quick Adapter Ċ import Ġcom . xf hy . library . adapter . Base ViewHolder Ċ import Ġcom . xf hy . library . base kit . fragment . Base State M VP Fragment Ċ import Ġkotlinx . android . synt hetic . main . layout _ refresh _ common _ list .* Ċ import Ġorg . jetbrains . ank o . support . v 4 . startActivity Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġxf hy Ġon Ġ 2 0 1 8 / 3 / 2 0 Ġ 1 3 : 1 9 Ċ Ġ* ĠDescription Ġ: ĠG ank ĠAndroid , IOS , åīįç«¯ éĢļ çĶ¨ fragment Ċ Ġ*/ Ċ class ĠG ank Common Fragment Ġ: ĠBase State M VP Fragment < G ank Common Presenter >(), ĠG ank Common Contract . View , ĠBase Quick Adapter . Request Load More Listener , ĠBase Quick Adapter . On ItemClickListener < G ank Common Bean . Result , ĠBase ViewHolder > Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( g ank Type : ĠString ): ĠG ank Common Fragment Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString (" g ank _ type ", Ġg ank Type ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠG ank Common Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm G ank Type : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġval Ġm G ank Adapter : ĠG ank Common Adapter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠG ank Common Adapter ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . g ank _ common _ fragment ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Presenter () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Presenter Ġ= ĠG ank Common Presenter ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ä¸ĭ æĭī åĪ·æĸ° é¢ľèī² ĊĠĠĠĠĠĠĠ Ġm Refresh Layout . setColor Scheme Resources ( R . color . color Primary ) ĊĊĠĠĠĠĠĠĠ Ġm RecyclerView . layout Manager Ġ= ĠLinearLayoutManager ( context , ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġm RecyclerView . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġm G ank Adapter . open Load Animation () ĊĠĠĠĠĠĠĠ Ġm G ank Adapter . set Enable Load More ( true ) ĊĠĠĠĠĠĠĠ Ġm RecyclerView . adapter Ġ= Ġm G ank Adapter ĊĊĠĠĠĠĠĠĠ Ġm G ank Adapter . setOn Load More Listener ( this , Ġm RecyclerView ) ĊĠĠĠĠĠĠĠ Ġm Refresh Layout . setOn Refresh Listener Ġ{ Ġm Presenter ?. refresh Data () Ġ} ĊĠĠĠĠĠĠĠ Ġm G ank Adapter . on ItemClickListener Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlazy Load () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . lazy Load () ĊĠĠĠĠĠĠĠ Ġm G ank Type Ġ= Ġarguments ?. getString (" g ank _ type ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġm State View Ġ= Ġview ?. findViewById ( R . id . s fl _ state _ view ) ĊĠĠĠĠĠĠĠ Ġm Presenter ?. req G ank Data ( m G ank Type , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonLoad More Requested () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Presenter ?. load More Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload More Success ( g ank DataList : ĠMutable List < G ank Common Bean . Result > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm G ank Adapter . load More Complete () ĊĠĠĠĠĠĠĠ Ġm G ank Adapter . addData ( g ank DataList ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload More Fail () Ġ{ ĊĠĠĠĠĠĠĠ Ġm G ank Adapter . load More Fail () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow G ank Data ( g ank DataList : ĠMutable List < G ank Common Bean . Result > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġclose Refresh () ĊĠĠĠĠĠĠĠ Ġm G ank Adapter . replace Data ( g ank DataList ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Refresh Layout ?. is Refresh ing Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( adapter : ĠBase Quick Adapter < G ank Common Bean . Result , ĠBase ViewHolder >, Ġview : ĠView , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . data ?. get ( position )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠG ank Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" title ", Ġit . desc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" url ", Ġit . url ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }