package Ġcom . ke e ppi eces . scroll able _ tab Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . widget . TextView Compat Ċ import Ġandroidx . recyclerview . widget . RecyclerView ĊĊ Ċ class ĠTab Adapter ( ĊĠ Ġprivate Ġval Ġtabs : ĠMutable List < String > Ġ= Ġmutable ListOf (), ĊĠ Ġprivate Ġval Ġstyle : ĠTab Style Ċ ) Ġ: ĠRecyclerView . Adapter < Tab ViewHolder >() Ġ{ ĊĊĠ Ġprivate Ġvar Ġlistener : Ġ(( position : ĠInt ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠ Ġview Type : ĠInt ĊĠ Ġ): ĠTab ViewHolder Ġ{ ĊĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . item _ tab , Ġparent , Ġfalse ) ĊĊĠĠĠ ĠTextView Compat . setText Appearance ( view . findViewById ( R . id . tv Tab ), Ġstyle . tab TextStyle ) ĊĠĠĠ Ġreturn ĠTab ViewHolder ( view , listener ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġtabs . size ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Bind ViewHolder ( ĊĠĠĠ Ġholder : ĠTab ViewHolder , ĊĠĠĠ Ġposition : ĠInt ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġholder . bind ( tabs [ position ]) ĊĠ Ġ} ĊĊĠ Ġfun Ġadd All ( list : ĠList < String >) Ġ{ ĊĠĠĠ Ġtabs . clear () ĊĠĠĠ Ġtabs . addAll ( list ) ĊĠĠĠ Ġnotify DataSet Changed () ĊĠ Ġ} ĊĊĠ Ġfun Ġon Tab Click ( listener : Ġ(( position : ĠInt ) Ġ-> ĠUnit )? ){ ĊĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠ Ġ} ĊĊĠ Ġinternal Ġfun Ġlisten Tab Change For Pager (){} Ċ Ċ } Ċ Ċ class ĠTab ViewHolder ( ĊĠ Ġview : ĠView , ĊĠ Ġprivate Ġval Ġlistener : Ġ(( position : ĠInt ) Ġ-> ĠUnit )? Ċ ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĊĠ Ġprivate Ġval Ġtab : ĠTextView Ġ= Ġview . findViewById ( R . id . tv Tab ) ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġlistener ?. invoke ( adapter Position ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġbind ( model : ĠString ) Ġ{ ĊĠĠĠ Ġtab . text Ġ= Ġmodel ĊĠ Ġ} Ċ } Ċ