package Ġcom . example . nested test demo . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . example . nested test demo . R Ċ import Ġcom . example . nested test demo . utils . Dim en Utils Ċ import Ġcom . example . nested test demo . widget . Recycler Tab Layout Ċ Ċ /** Ċ Ġ* Ġ é¦ĸé¡µ ĠTab Ġæķ°æį® Ċ Ġ* Ċ Ġ* Ġ@ author Ġ 0 0 0 4 6 4 0 Ċ Ġ*/ Ċ class ĠSimple Tab Adapter ( private Ġval Ġactivity Context Ġ: ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager : ĠView Pager ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġlist Ġ: ĠArrayList < String >) ĊĠĠĠ Ġ: ĠRe cycler Tab Layout . Adapter < Simple Tab Adapter . ViewHolder >( view Pager ){ ĊĊĠĠĠ Ġprivate Ġvar Ġmin Tab Width Ġ: ĠInt Ġ= ĠDim en Utils . dip Top x ( activity Context , Ġ 8 6 f ) ĊĊĠĠĠ Ġprivate Ġvar Ġsplit Tab Width Ġ: ĠFloat Ġ= ĠDim en Utils . getDisplay Width ( activity Context ) Ġ/ Ġ 4 . 5 f ĊĊĠĠĠ Ġvar Ġis Only Show Bottom Line Ġ= Ġfalse ĊĊĠĠĠ Ġval Ġlistener Ġ: ĠOn Tab Select Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( activity Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . item _ classify _ goods _ title , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® view çļĦ å®½åº¦ åĴĮ é«ĺåº¦ ï¼Į å¦Ĥæŀľ å±ı å¹ķ å®½åº¦ å¾Ī å°ı ï¼Į ä¼ļ å¯¼èĩ´ åĲįç§° æį¢ è¡Į ï¼Į åĽłæŃ¤ éľĢè¦ģ è®¾ç½® ä¸Ģä¸ª æľĢå°ı çļĦ å®½åº¦ éĺ Ī åĢ¼ ĊĠĠĠĠĠĠĠ Ġvar Ġwidth : ĠInt Ġ= Ġsplit Tab Width . toInt () ĊĠĠĠĠĠĠĠ Ġif ( split Tab Width Ġ<= Ġmin Tab Width ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġmin Tab Width ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview ?. layout Params ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . height Ġ= ĠDim en Utils . dip Top x ( 4 8 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġlist . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title ?. text Ġ= Ġ" ä½įç½® $ position " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ éĢī ä¸ŃçļĦ Ġ**/ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġcurrent Indicator Position ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title ?. setTextColor ( activity Context . resources . getColor ( R . color . color _ 1 BB 3 2 F )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . content ?. setTextColor ( activity Context . resources . getColor ( R . color . white )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . content ?. setBackground Resource ( R . drawable . bg _ item _ classify _ goods _ green ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Only Show Bottom Line ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . content ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bottom Line ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . content ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bottom Line ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title ?. setTextColor ( activity Context . resources . getColor ( R . color . color _ 2 4 2 4 2 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . content ?. setTextColor ( activity Context . resources . getColor ( R . color . color _ 8 a 8 a 8 a )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . content ?. setBackground Resource ( R . drawable . bg _ item _ classify _ goods _ activity _ transparent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bottom Line ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Only Show Bottom Line ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . content ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . content ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠåĪĨ åī² çº¿ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġlist . size Ġ- Ġ 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . divider ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . divider ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item Ġ: ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item ){ ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠTextView ? Ġ= ĠitemView . findViewById ( R . id . tv Title ) ĊĠĠĠĠĠĠĠ Ġval Ġcontent : ĠTextView ? Ġ= ĠitemView . findViewById ( R . id . tv Content ) ĊĠĠĠĠĠĠĠ Ġval Ġdivider Ġ: ĠView ? Ġ= ĠitemView . findViewById ( R . id . divider ) ĊĠĠĠĠĠĠĠ Ġval Ġbottom Line Ġ: ĠView ? Ġ= ĠitemView . findViewById ( R . id . bottom _ line ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( adapter Position Ġ!= ĠRecyclerView . NO _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager ?. setCurrent Item ( adapter Position , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Tab Select ( adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Tab Select Listener { ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Tab Select ( position Ġ: ĠInt ) ĊĊĠĠĠ Ġ} Ċ Ċ }