package Ġjp . k ale id ot 7 2 5 . sample . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġcom . air bnb . e po xy . Callback Prop Ċ import Ġcom . air bnb . e po xy . Model View Ċ import Ġcom . air bnb . e po xy . Text Prop Ċ Ċ @ Model View ( auto Layout Ġ= ĠModel View . Size . MATCH _ WIDTH _ WRAP _ HEIGHT ) Ċ class ĠHeader Custom View Ġ: ĠLinearLayout Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtitle View : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbutton View : ĠButton ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( context , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( context , Ġattrs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle View Ġ= ĠTextView ( context , Ġattrs ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġ 5 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text Size Ġ= Ġ 3 2 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbutton View Ġ= ĠButton ( context , Ġattrs ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton View . text Ġ= Ġ" ACTION " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . addView ( title View ) ĊĠĠĠĠĠĠĠ Ġthis . addView ( button View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Text Prop ĊĠĠĠ Ġfun ĠsetTitle ( text : ĠCharSequence ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle View . text Ġ= Ġtext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Callback Prop ĊĠĠĠ Ġfun ĠonClick Listener ( listener : ĠView . OnClickListener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton View . setOnClickListener ( listener ) ĊĠĠĠ Ġ} Ċ } ĊĊ