@@ -205,14 +205,22 @@ private void setupItem(LinearLayout ll, TextView textView,ImageView imgView, Tab
205205 textView .setVisibility (GONE );
206206 }
207207
208+ if (tabItem .backgroundColor != 0 ) {
209+ ll .setBackgroundColor (tabItem .backgroundColor );
210+ }
211+
208212 ll .setMinimumHeight ((int ) (BOTTOM_NAV_HEIGHT * density ));
209213
210214 LinearLayout .LayoutParams lp = (LinearLayout .LayoutParams ) ll .getLayoutParams ();
211215 lp .width = 0 ;
212216 lp .weight = 1 ;
213217 }
214218
215- public void onSelectedPositionChange (int position ) {
219+ public void onTap (int position ) {
220+ // to be overridden in JS
221+ }
222+
223+ public void onSelectedPositionChange (int position , int prevPosition ) {
216224 // to be overridden in JS
217225 }
218226
@@ -239,13 +247,15 @@ private void populateTabStrip() {
239247 int tabTextColor = mTabStrip .getTabTextColor ();
240248 mTabStrip .setTabTextColor (Color .argb (100 , Color .red (tabTextColor ), Color .green (tabTextColor ), Color .blue (tabTextColor )));
241249 mTabStrip .setSelectedTabTextColor (Color .argb (255 , Color .red (tabTextColor ), Color .green (tabTextColor ), Color .blue (tabTextColor )));
242- mTabStrip .setSelectedPosition (0 );
243250 }
244251 }
245252
246253 public void setSelectedPosition (int position ) {
247- mTabStrip .setSelectedPosition (position );
248- onSelectedPositionChange (position );
254+ int prevPosition = mTabStrip .getSelectedPosition ();
255+ if (position != prevPosition ) {
256+ mTabStrip .setSelectedPosition (position );
257+ onSelectedPositionChange (position , prevPosition );
258+ }
249259 }
250260
251261 public void setContentDescription (int i , String desc ) {
@@ -257,6 +267,7 @@ private class TabClickListener implements OnClickListener {
257267 public void onClick (View v ) {
258268 for (int i = 0 ; i < mTabStrip .getChildCount (); i ++) {
259269 if (v == mTabStrip .getChildAt (i )) {
270+ onTap (i );
260271 setSelectedPosition (i );
261272 return ;
262273 }
0 commit comments