Skip to content

Commit 0b239d7

Browse files
authored
feat(tabview): add androidSwipeEnabled property (#6652)
1 parent 5b5fd9a commit 0b239d7

5 files changed

Lines changed: 39 additions & 1 deletion

File tree

‎apps/app/ui-tests-app/tab-view/main-page.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export function loadExamples() {
2424
examples.set("tab-view-bottom-position", "tab-view/tab-view-bottom-position");
2525
examples.set("issue-5470", "tab-view/issue-5470");
2626
examples.set("tab-view-tab-text-font-size", "tab-view/tab-view-tab-text-font-size");
27+
examples.set("tab-view-android-swipe", "tab-view/tab-view-android-swipe");
2728
examples.set("tab-view-icon-title-placement", "tab-view/icon-title-placement");
2829
return examples;
2930
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<Page cssFile="~/ui-tests-app/css/test.css" loaded="onLoaded">
2+
<TabView androidSwipeEnabled="false">
3+
<TabView.items>
4+
5+
<TabViewItem title="Tab 1">
6+
<TabViewItem.view>
7+
<Label text="Label 1" />
8+
</TabViewItem.view>
9+
</TabViewItem>
10+
11+
<TabViewItem title="Tab 2">
12+
<TabViewItem.view>
13+
<Label text="Label 2" />
14+
</TabViewItem.view>
15+
</TabViewItem>
16+
17+
<TabViewItem title="Tab 3">
18+
<TabViewItem.view>
19+
<Label text="Label 3" />
20+
</TabViewItem.view>
21+
</TabViewItem>
22+
</TabView.items>
23+
</TabView>
24+
</Page>

‎tns-core-modules/ui/tab-view/tab-view-common.ts‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import {
33
View, ViewBase, Style, Property, CssProperty, CoercibleProperty,
44
Color, isIOS, AddArrayFromBuilder, AddChildFromBuilder, EventData, CSSType,
5-
traceWrite, traceCategories, traceMessageType
5+
traceWrite, traceCategories, traceMessageType, booleanConverter
66
} from "../core/view";
77

88
export * from "../core/view";
@@ -95,6 +95,7 @@ export class TabViewBase extends View implements TabViewDefinition, AddChildFrom
9595
public selectedIndex: number;
9696
public androidOffscreenTabLimit: number;
9797
public androidTabsPosition: "top" | "bottom";
98+
public androidSwipeEnabled: boolean;
9899
public iosIconRenderingMode: "automatic" | "alwaysOriginal" | "alwaysTemplate";
99100

100101
get androidSelectedTabHighlightColor(): Color {
@@ -252,6 +253,9 @@ androidOffscreenTabLimitProperty.register(TabViewBase);
252253
export const androidTabsPositionProperty = new Property<TabViewBase, "top" | "bottom">({ name: "androidTabsPosition", defaultValue: "top" });
253254
androidTabsPositionProperty.register(TabViewBase);
254255

256+
export const androidSwipeEnabledProperty = new Property<TabViewBase, boolean>({ name: "androidSwipeEnabled", defaultValue: true, valueConverter: booleanConverter });
257+
androidSwipeEnabledProperty.register(TabViewBase);
258+
255259
export const tabTextFontSizeProperty = new CssProperty<Style, number>({ name: "tabTextFontSize", cssName: "tab-text-font-size", valueConverter: (v) => parseFloat(v) });
256260
tabTextFontSizeProperty.register(Style);
257261

‎tns-core-modules/ui/tab-view/tab-view.android.ts‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,10 @@ export class TabView extends TabViewBase {
437437
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.star));
438438

439439
viewPager.setLayoutParams(lp);
440+
441+
if (!this.androidSwipeEnabled) {
442+
viewPager.setSwipePageEnabled(false);
443+
}
440444
} else {
441445
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.star));
442446
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.auto));

‎tns-core-modules/ui/tab-view/tab-view.d.ts‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@ export class TabView extends View {
122122
*/
123123
androidTabsPosition: "top" | "bottom";
124124

125+
/**
126+
* Gets or sets a value indicating whether swipe gesture is enabled for Android.
127+
*/
128+
androidSwipeEnabled: boolean;
129+
125130
/**
126131
* String value used when hooking to the selectedIndexChanged event.
127132
*/

0 commit comments

Comments
 (0)