package Ġother . mv vm . fragment . src . app _ package Ċ Ċ fun Ġmv vm Fragment Kt ( ĊĠĠĠĠĠĠĠ Ġapplication Package : ĠString ?, ĊĠĠĠĠĠĠĠ Ġfragment Class : ĠString , ĊĠĠĠĠĠĠĠ Ġlayout Name : ĠString , ĊĠĠĠĠĠĠĠ ĠpackageName : ĠString Ċ ) Ġ= Ġ""" Ċ package Ġ${ packageName } Ċ import Ġandroid . os . Bundle Ċ import Ġcom . sh ide . base lib . base . fragment . Data Binding Config Ċ import Ġcom . sh ide . base lib . base . fragment . Lazy Vm Fragment Ċ import Ġ${ application Package }. R Ċ class Ġ${ fragment Class } Fragment Ġ: ĠLazy Vm Fragment < ${ fragment Class } ViewModel >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġinit ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlazy Init () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout .${ layout Name } ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetData Binding Config (): ĠData Binding Config ? Ġ{ ĊĠĠĠ Ġ// Ġex map le ĠĠĠĠĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġreturn ĠData Binding Config ( R . layout . fragment _ item _ report _ form , ĠviewModel ) ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Binding Param ( BR . vm , ĠviewModel ) ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġoverride Ġfun Ġinit ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġget Fragment ViewModel (${ fragment Class } ViewModel :: class . java ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ """