/* Ċ Ġ* ĠCreate Ġby ĠJ acob ĠG ( Gu an De Li ang ) Ġon Ġ 2 0 2 0 . Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġ. ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLast Ġmodified Ġ 2 0 - 2 - 2 8 Ġä¸ĭåįĪ 1 0 : 0 4 Ċ Ġ* Ċ Ġ*/ Ċ package Ġcom . jacob . material . example . motion layout Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Lifecycle Observer Ċ import Ġcom . jacob . material . R Ċ import Ġcom . jacob . material . databinding . Motion Layout Key Position Type Fragment Binding Ċ Ċ class ĠMotion Layout Key Position Type Fragment Ġ: ĠFragment (), ĠLifecycle Observer Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ POSITION _ TYPE : String Ġ= Ġ" KEY _ POSITION _ TYPE " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ POSITION _ TYPE _ DELTA : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ POSITION _ TYPE _ PARENT : ĠInt Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ POSITION _ TYPE _ PATH : ĠInt Ġ= Ġ 2 ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠMotion Layout Key Position Type Fragment Binding ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . lifecycle . add Observer ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( in flater , ĠR . layout . motion _ layout _ key _ position _ type _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġvar Ġkey Position Type : Int Ġ= Ġrequire Arguments (). getInt ( KEY _ POSITION _ TYPE ) ĊĊĠĠĠĠĠĠĠ Ġwhen ( key Position Type ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKEY _ POSITION _ TYPE _ DELTA Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . motion Layout . load Layout Description ( R . xml . motion _ layout _ key _ position _ type _ delta _ fragment _ scene ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKEY _ POSITION _ TYPE _ PARENT Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . motion Layout . load Layout Description ( R . xml . motion _ layout _ key _ position _ type _ parent _ fragment _ scene ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKEY _ POSITION _ TYPE _ PATH Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . motion Layout . load Layout Description ( R . xml . motion _ layout _ key _ position _ type _ path _ fragment _ scene ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . getRoot () ĊĠĠĠ Ġ} ĊĊ Ċ }