Skip to content

Commit 7a02084

Browse files
committed
fix(bottom-navigation): wrong bar position on android
1 parent ae37573 commit 7a02084

File tree

5 files changed

+15
-14
lines changed

5 files changed

+15
-14
lines changed

src/bottom-navigation/index.android.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import { TabContentItem } from '@nativescript-community/ui-material-core/tab-nav
22
import { PRIMARY_COLOR, TabNavigation } from '@nativescript-community/ui-material-core/tab-navigation-base/tab-navigation/index.android';
33
import { TabStrip } from '@nativescript-community/ui-material-core/tab-navigation-base/tab-strip';
44
import { TabStripItem } from '@nativescript-community/ui-material-core/tab-navigation-base/tab-strip-item';
5+
import { TabsPosition } from '@nativescript-community/ui-material-core/tab-navigation-base/tab-navigation/index-common';
56
import { CSSType, Color, Utils } from '@nativescript/core';
7+
68
export { TabContentItem, TabStrip, TabStripItem };
79

810
interface BottomNavigationBar extends com.nativescript.material.core.BottomNavigationBar {
@@ -26,7 +28,6 @@ function initializeNativeClasses() {
2628
}
2729

2830
public onSelectedPositionChange(position: number, prevPosition: number): void {
29-
console.log('onSelectedPositionChange', position, prevPosition);
3031
const owner = this.owner;
3132
if (!owner) {
3233
return;
@@ -39,7 +40,6 @@ function initializeNativeClasses() {
3940
if (!owner) {
4041
return false;
4142
}
42-
console.log('onTap', position, owner.onTabsBarTap(position));
4343
return owner.onTabsBarTap(position);
4444
}
4545
}
@@ -49,6 +49,7 @@ function initializeNativeClasses() {
4949

5050
@CSSType('BottomNavigation')
5151
export class BottomNavigation extends TabNavigation<com.nativescript.material.core.BottomNavigationBar> {
52+
tabsPosition = TabsPosition.Bottom;
5253
protected updateTabsBarItemAt(position: number, itemSpec: com.nativescript.material.core.TabItemSpec) {
5354
this.mTabsBar.updateItemAt(position, itemSpec);
5455
}
@@ -65,11 +66,6 @@ export class BottomNavigation extends TabNavigation<com.nativescript.material.co
6566
initializeNativeClasses();
6667
const tabsBar = new BottomNavigationBar(context, this);
6768
const primaryColor = Utils.android.resources.getPaletteColor(PRIMARY_COLOR, context);
68-
// const accentColor = getDefaultAccentColor(context);
69-
// if (accentColor) {
70-
// tabsBar.setSelectedIndicatorColors([accentColor]);
71-
// }
72-
7369
if (primaryColor) {
7470
tabsBar.setBackgroundColor(primaryColor);
7571
}

src/core/tab-navigation-base/tab-navigation/index-common.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,15 @@ export namespace knownCollections {
1111
export const items = 'items';
1212
}
1313

14+
export enum TabsPosition {
15+
Top = 'top',
16+
Bottom = 'bottom'
17+
}
18+
1419
export class TabNavigationBase extends TabNavigationBaseBase implements TabsDefinition {
1520
public swipeEnabled: boolean;
1621
public offscreenTabLimit: number;
17-
public tabsPosition: 'top' | 'bottom';
22+
public tabsPosition: TabsPosition;
1823
// public iOSTabBarItemsAlignment: IOSTabBarItemsAlignment;
1924
public animationEnabled: boolean;
2025
@cssProperty rippleColor: Color;
@@ -34,7 +39,7 @@ export const offscreenTabLimitProperty = new Property<TabNavigationBase, number>
3439
});
3540
offscreenTabLimitProperty.register(TabNavigationBase);
3641

37-
export const tabsPositionProperty = new Property<TabNavigationBase, 'top' | 'bottom'>({ name: 'tabsPosition', defaultValue: 'top' });
42+
export const tabsPositionProperty = new Property<TabNavigationBase, TabsPosition>({ name: 'tabsPosition' });
3843
tabsPositionProperty.register(TabNavigationBase);
3944

4045
// export type IOSTabBarItemsAlignment = 'leading' | 'justified' | 'center' | 'centerSelected';

src/core/tab-navigation-base/tab-navigation/index.android.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,7 @@ export abstract class TabNavigation<T extends android.view.ViewGroup = any> exte
394394
protected mSelectedItemColor: Color;
395395
protected mUnSelectedItemColor: Color;
396396
fragments: androidx.fragment.app.Fragment[] = [];
397+
protected tabBarLayoutParams: org.nativescript.widgets.CommonLayoutParams;
397398

398399
constructor() {
399400
super();
@@ -431,6 +432,7 @@ export abstract class TabNavigation<T extends android.view.ViewGroup = any> exte
431432
} else {
432433
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.star));
433434
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.auto));
435+
this.tabBarLayoutParams = lp;
434436
}
435437

436438
nativeView.addView(viewPager);
@@ -482,7 +484,7 @@ export abstract class TabNavigation<T extends android.view.ViewGroup = any> exte
482484
const tabsBar = (this.mTabsBar = this.createNativeTabBar(context));
483485
setElevation(null, tabsBar, this.tabsPosition);
484486
if (this.tabsPosition !== 'top') {
485-
tabsBar.setLayoutParams(this.mViewPager.getLayoutParams());
487+
tabsBar.setLayoutParams(this.tabBarLayoutParams);
486488
}
487489
nativeView.addView(tabsBar);
488490
nativeView['tabsBar'] = tabsBar;
@@ -1090,7 +1092,6 @@ export abstract class TabNavigation<T extends android.view.ViewGroup = any> exte
10901092
// if (traceEnabled()) {
10911093
// traceWrite("TabView this._viewPager.setCurrentItem(" + value + ", " + smoothScroll + ");", traceCategory);
10921094
// }
1093-
console.log('selectedIndexProperty', value, new Error().stack);
10941095
this.mViewPager.setCurrentItem(value, this.animationEnabled);
10951096
}
10961097

src/core/tab-navigation-base/tab-navigation/index.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { TabNavigationBase } from '../tab-navigation-base';
88
import { TabContentItem } from '../tab-navigation-base/tab-content-item';
99
import { TabStrip } from '../tab-navigation-base/tab-strip';
1010
import { TabStripItem } from '../tab-navigation-base/tab-strip-item';
11+
import { TabsPosition } from './index-common';
1112
export { TabContentItem, TabStrip, TabStripItem };
1213
/**
1314
* Represents a swipeable tabs view.
@@ -42,7 +43,7 @@ export abstract class TabNavigation<T = any> extends TabNavigationBase {
4243
/**
4344
* Gets or sets the position state of the Tabs.
4445
*/
45-
tabsPosition: 'top' | 'bottom';
46+
tabsPosition: TabsPosition;
4647

4748
/**
4849
* Allow custom positioning of Tabs within another view

src/core/tab-navigation-base/tab-navigation/index.ios.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,6 @@ export abstract class TabNavigation<
842842
}
843843

844844
public setTabBarItemFontInternal(tabStripItem: TabStripItem, value: Font): void {
845-
console.log('setTabBarItemFontInternal');
846845
this.setViewTextAttributes(tabStripItem.label);
847846
}
848847

@@ -851,7 +850,6 @@ export abstract class TabNavigation<
851850
}
852851

853852
public setTabBarFontInternal(): void {
854-
console.log('setTabBarFontInternal');
855853
const defaultTabItemFontSize = 10;
856854
const tabItemFontSize = this.tabStrip.style.fontSize || defaultTabItemFontSize;
857855
const font: UIFont = (this.tabStrip.style.fontInternal || Font.default).getUIFont(UIFont.systemFontOfSize(tabItemFontSize));

0 commit comments

Comments
 (0)