mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-03 20:13:02 +08:00
feat(tabview): add androidSwipeEnabled property (#6652)
This commit is contained in:
@ -24,6 +24,7 @@ export function loadExamples() {
|
|||||||
examples.set("tab-view-bottom-position", "tab-view/tab-view-bottom-position");
|
examples.set("tab-view-bottom-position", "tab-view/tab-view-bottom-position");
|
||||||
examples.set("issue-5470", "tab-view/issue-5470");
|
examples.set("issue-5470", "tab-view/issue-5470");
|
||||||
examples.set("tab-view-tab-text-font-size", "tab-view/tab-view-tab-text-font-size");
|
examples.set("tab-view-tab-text-font-size", "tab-view/tab-view-tab-text-font-size");
|
||||||
|
examples.set("tab-view-android-swipe", "tab-view/tab-view-android-swipe");
|
||||||
examples.set("tab-view-icon-title-placement", "tab-view/icon-title-placement");
|
examples.set("tab-view-icon-title-placement", "tab-view/icon-title-placement");
|
||||||
return examples;
|
return examples;
|
||||||
}
|
}
|
||||||
|
|||||||
24
apps/app/ui-tests-app/tab-view/tab-view-android-swipe.xml
Normal file
24
apps/app/ui-tests-app/tab-view/tab-view-android-swipe.xml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<Page cssFile="~/ui-tests-app/css/test.css" loaded="onLoaded">
|
||||||
|
<TabView androidSwipeEnabled="false">
|
||||||
|
<TabView.items>
|
||||||
|
|
||||||
|
<TabViewItem title="Tab 1">
|
||||||
|
<TabViewItem.view>
|
||||||
|
<Label text="Label 1" />
|
||||||
|
</TabViewItem.view>
|
||||||
|
</TabViewItem>
|
||||||
|
|
||||||
|
<TabViewItem title="Tab 2">
|
||||||
|
<TabViewItem.view>
|
||||||
|
<Label text="Label 2" />
|
||||||
|
</TabViewItem.view>
|
||||||
|
</TabViewItem>
|
||||||
|
|
||||||
|
<TabViewItem title="Tab 3">
|
||||||
|
<TabViewItem.view>
|
||||||
|
<Label text="Label 3" />
|
||||||
|
</TabViewItem.view>
|
||||||
|
</TabViewItem>
|
||||||
|
</TabView.items>
|
||||||
|
</TabView>
|
||||||
|
</Page>
|
||||||
@ -2,7 +2,7 @@
|
|||||||
import {
|
import {
|
||||||
View, ViewBase, Style, Property, CssProperty, CoercibleProperty,
|
View, ViewBase, Style, Property, CssProperty, CoercibleProperty,
|
||||||
Color, isIOS, AddArrayFromBuilder, AddChildFromBuilder, EventData, CSSType,
|
Color, isIOS, AddArrayFromBuilder, AddChildFromBuilder, EventData, CSSType,
|
||||||
traceWrite, traceCategories, traceMessageType
|
traceWrite, traceCategories, traceMessageType, booleanConverter
|
||||||
} from "../core/view";
|
} from "../core/view";
|
||||||
|
|
||||||
export * from "../core/view";
|
export * from "../core/view";
|
||||||
@ -95,6 +95,7 @@ export class TabViewBase extends View implements TabViewDefinition, AddChildFrom
|
|||||||
public selectedIndex: number;
|
public selectedIndex: number;
|
||||||
public androidOffscreenTabLimit: number;
|
public androidOffscreenTabLimit: number;
|
||||||
public androidTabsPosition: "top" | "bottom";
|
public androidTabsPosition: "top" | "bottom";
|
||||||
|
public androidSwipeEnabled: boolean;
|
||||||
public iosIconRenderingMode: "automatic" | "alwaysOriginal" | "alwaysTemplate";
|
public iosIconRenderingMode: "automatic" | "alwaysOriginal" | "alwaysTemplate";
|
||||||
|
|
||||||
get androidSelectedTabHighlightColor(): Color {
|
get androidSelectedTabHighlightColor(): Color {
|
||||||
@ -252,6 +253,9 @@ androidOffscreenTabLimitProperty.register(TabViewBase);
|
|||||||
export const androidTabsPositionProperty = new Property<TabViewBase, "top" | "bottom">({ name: "androidTabsPosition", defaultValue: "top" });
|
export const androidTabsPositionProperty = new Property<TabViewBase, "top" | "bottom">({ name: "androidTabsPosition", defaultValue: "top" });
|
||||||
androidTabsPositionProperty.register(TabViewBase);
|
androidTabsPositionProperty.register(TabViewBase);
|
||||||
|
|
||||||
|
export const androidSwipeEnabledProperty = new Property<TabViewBase, boolean>({ name: "androidSwipeEnabled", defaultValue: true, valueConverter: booleanConverter });
|
||||||
|
androidSwipeEnabledProperty.register(TabViewBase);
|
||||||
|
|
||||||
export const tabTextFontSizeProperty = new CssProperty<Style, number>({ name: "tabTextFontSize", cssName: "tab-text-font-size", valueConverter: (v) => parseFloat(v) });
|
export const tabTextFontSizeProperty = new CssProperty<Style, number>({ name: "tabTextFontSize", cssName: "tab-text-font-size", valueConverter: (v) => parseFloat(v) });
|
||||||
tabTextFontSizeProperty.register(Style);
|
tabTextFontSizeProperty.register(Style);
|
||||||
|
|
||||||
|
|||||||
@ -437,6 +437,10 @@ export class TabView extends TabViewBase {
|
|||||||
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.star));
|
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.star));
|
||||||
|
|
||||||
viewPager.setLayoutParams(lp);
|
viewPager.setLayoutParams(lp);
|
||||||
|
|
||||||
|
if (!this.androidSwipeEnabled) {
|
||||||
|
viewPager.setSwipePageEnabled(false);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.star));
|
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.star));
|
||||||
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.auto));
|
nativeView.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.auto));
|
||||||
|
|||||||
5
tns-core-modules/ui/tab-view/tab-view.d.ts
vendored
5
tns-core-modules/ui/tab-view/tab-view.d.ts
vendored
@ -122,6 +122,11 @@ export class TabView extends View {
|
|||||||
*/
|
*/
|
||||||
androidTabsPosition: "top" | "bottom";
|
androidTabsPosition: "top" | "bottom";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets or sets a value indicating whether swipe gesture is enabled for Android.
|
||||||
|
*/
|
||||||
|
androidSwipeEnabled: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* String value used when hooking to the selectedIndexChanged event.
|
* String value used when hooking to the selectedIndexChanged event.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user