我想在页面之间实现导航,就像通过向左或向右滑动TabView一样。但是,对于页面级别或跨越整个屏幕的布局,似乎不会触发滑动手势。 TabView本身没用,因为我有一大堆用户可以滚动的项目,而且我不需要在屏幕上显示一堆标签。
有没有人知道如何在Nativescript中实现它?
答案 0 :(得分:5)
StackOverflow和NatieScript的问候!整个屏幕上的布局元素是一个工作选项。
例如:
// main-page.xml
<Page xmlns="http://schemas.nativescript.org/tns.xsd" xmlns:drawer="nativescript-telerik-ui/sidedrawer" navigatingTo="navigatingTo" loaded="onLoaded">
<StackLayout id="swipable">
<Label text="Swipe to nabigate to next" textWrap="true" />
</StackLayout>
</Page>
// main-page.js
var stackModule = require("ui/layouts/stack-layout");
var gestures = require("ui/gestures");
var frameModule = require("ui/frame");
function onLoaded(args) {
var page = args.object;
var myStack = page.getViewById("swipable");
myStack.on(gestures.GestureTypes.swipe, function (args) {
frameModule.topmost().navigate({
moduleName: "next-page"
});
});
}
exports.onLoaded = onLoaded;
答案 1 :(得分:0)
这对我有用
XML:
// XML
<ScrollView row="0" orientation="horizontal" swipe="onSwipe">
.... content....
</ScrollView>
javascript:
// javascript
function onSwipe(args) {
var direction = args.direction;
console.log("Swipe Direction: " + direction); // 1 - left, 2 - right
if(direction === 1) {
//topmost = require("ui/frame").topmost;
frameModule.topmost().goBack(); // replace with func. below for navigation to other page
// frameModule.topmost().navigate({
// moduleName: "your/page"
// });
}
}
这不会显示任何视觉上的滑动动作(没有动画等)。