Skip to content

Commit ca22ba9

Browse files
authored
fix(tabs-android): wrong tabStripItem selected (#7522)
1 parent 16924f4 commit ca22ba9

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

tns-core-modules-widgets/android/widgets/src/main/java/org/nativescript/widgets/TabLayout.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,11 @@ public void onPageScrolled(int position, float positionOffset, int positionOffse
383383
}
384384

385385
int prevPosition = mTabStrip.getSelectedPosition();
386-
onSelectedPositionChange(position, prevPosition);
386+
387+
if (prevPosition != position) {
388+
onSelectedPositionChange(position, prevPosition);
389+
}
390+
387391
mTabStrip.onViewPagerPageChanged(position, positionOffset);
388392

389393
View selectedTitle = mTabStrip.getChildAt(position);

tns-core-modules/ui/tabs/tabs.android.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -248,18 +248,14 @@ function initializeNativeClasses() {
248248
return;
249249
}
250250

251-
if (position !== prevPosition) {
252-
const tabStripItems = owner.tabStrip && owner.tabStrip.items;
253-
254-
if (position >= 0 && tabStripItems && tabStripItems[position]) {
255-
tabStripItems[position]._emit(TabStripItem.selectEvent);
256-
}
251+
const tabStripItems = owner.tabStrip && owner.tabStrip.items;
257252

258-
if (prevPosition >= 0 && tabStripItems && tabStripItems[prevPosition]) {
259-
tabStripItems[prevPosition]._emit(TabStripItem.unselectEvent);
260-
}
253+
if (position >= 0 && tabStripItems && tabStripItems[position]) {
254+
tabStripItems[position]._emit(TabStripItem.selectEvent);
255+
}
261256

262-
owner.selectedIndex = position;
257+
if (prevPosition >= 0 && tabStripItems && tabStripItems[prevPosition]) {
258+
tabStripItems[prevPosition]._emit(TabStripItem.unselectEvent);
263259
}
264260
}
265261

0 commit comments

Comments
 (0)