diff --git a/tns-core-modules-widgets/android/widgets/src/main/java/org/nativescript/widgets/TabLayout.java b/tns-core-modules-widgets/android/widgets/src/main/java/org/nativescript/widgets/TabLayout.java index 400e3b65c..fad929b9c 100644 --- a/tns-core-modules-widgets/android/widgets/src/main/java/org/nativescript/widgets/TabLayout.java +++ b/tns-core-modules-widgets/android/widgets/src/main/java/org/nativescript/widgets/TabLayout.java @@ -383,7 +383,11 @@ public class TabLayout extends HorizontalScrollView { } int prevPosition = mTabStrip.getSelectedPosition(); - onSelectedPositionChange(position, prevPosition); + + if (prevPosition != position) { + onSelectedPositionChange(position, prevPosition); + } + mTabStrip.onViewPagerPageChanged(position, positionOffset); View selectedTitle = mTabStrip.getChildAt(position); diff --git a/tns-core-modules/ui/tabs/tabs.android.ts b/tns-core-modules/ui/tabs/tabs.android.ts index 4f62082f5..56435aef1 100644 --- a/tns-core-modules/ui/tabs/tabs.android.ts +++ b/tns-core-modules/ui/tabs/tabs.android.ts @@ -248,18 +248,14 @@ function initializeNativeClasses() { return; } - if (position !== prevPosition) { - const tabStripItems = owner.tabStrip && owner.tabStrip.items; + const tabStripItems = owner.tabStrip && owner.tabStrip.items; - if (position >= 0 && tabStripItems && tabStripItems[position]) { - tabStripItems[position]._emit(TabStripItem.selectEvent); - } + if (position >= 0 && tabStripItems && tabStripItems[position]) { + tabStripItems[position]._emit(TabStripItem.selectEvent); + } - if (prevPosition >= 0 && tabStripItems && tabStripItems[prevPosition]) { - tabStripItems[prevPosition]._emit(TabStripItem.unselectEvent); - } - - owner.selectedIndex = position; + if (prevPosition >= 0 && tabStripItems && tabStripItems[prevPosition]) { + tabStripItems[prevPosition]._emit(TabStripItem.unselectEvent); } }