package Ġcom . top view . pure joy . common . mv vm . fragment Ċ Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . top view . pure joy . common . base . binding . Binding Fragment Ċ import Ġcom . top view . pure joy . common . mv vm . view model . MV VM ViewModel Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġgi ag or Ġat Ġ 2 0 2 1 / 0 3 / 1 5 . Ċ Ġ* Ġ*/ Ċ abstract Ġclass ĠMV VM Fragment < VM Ġ: ĠMV VM ViewModel , ĠVB Ġ: ĠView Data Binding > Ġ: ĠBinding Fragment < VB >() Ġ{ ĊĠĠĠ Ġprotected Ġval ĠviewModel : ĠVM Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate ViewModel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¿ĶåĽŀ å½ĵåīį Fragment ç»ĳ å®ļçļĦ ViewModel ç±»åŀĭ ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġget ViewModel Class (): ĠClass < VM > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º ä¸İ å½ĵåīį Fragment çĽ¸åħ³ èģĶ çļĦ ViewModel ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate ViewModel (): ĠVM Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewModel Provider ( this , Ġcreate Factory ()). get ( get ViewModel Class ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæıĲ ä¾Ľ ä¸Ģä¸ª Factory å®ŀä¾ĭ ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġcreate Factory (): ĠViewModel Provider . Factory Ċ }