Nativescript 在Listview中,滚动并快速单击项目时无法停止滚动,是否会打开项目?
在listview内部,我有listview模板,它的内部有不同的元素和不同的tap事件侦听器 在IOS中,快速滚动和快速触摸屏幕。 它导航到项目页面而不是停止滚动,所以我想接近下面的方法来停止滚动。无法修复 预期结果:停止滚动 如果触摸屏幕停止滚动,然后我触摸屏幕上的打开项目页面 实际结果:转到els部分,无法停止滚动。 滚动时,触摸屏幕(触发点击事件),而不是停止滚动Nativescript 在Listview中,滚动并快速单击项目时无法停止滚动,是否会打开项目?,nativescript,Nativescript,在listview内部,我有listview模板,它的内部有不同的元素和不同的tap事件侦听器 在IOS中,快速滚动和快速触摸屏幕。 它导航到项目页面而不是停止滚动,所以我想接近下面的方法来停止滚动。无法修复 预期结果:停止滚动 如果触摸屏幕停止滚动,然后我触摸屏幕上的打开项目页面 实际结果:转到els部分,无法停止滚动。 滚动时,触摸屏幕(触发点击事件),而不是停止滚动 <Page xmlns="http://schemas.nativescript.org/tns.xsd" navig
<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="onNavigatingTo">
<ListView items="{{ menu }}" row="1" id="mylist" >
<ListView.itemTemplate>
<GridLayout columns="auto, *">
<Image src="{{ imageURL }}" row="0" cssClass="icon" tap="myTapListener"/>
<StackLayout col="1" tap="myTapListener1">
<Label text="{{ title }}" cssClass="name"/>
<Label text="{{ subtitle }}" cssClass="location"/>
</StackLayout>
</GridLayout>
</ListView.itemTemplate>
</ListView>
</Page
exports.myTapListener = function(args) {
var item = args.object;
if(item.page.getViewById("mylist").isScrolling) {
console.log("Scroll stopped: " + item.page.getViewById("mylist).isScrolling);
return;
} else {
console.log("unable to stop:" + item.page.getViewById("mylist).isScrolling);
}
}
exports.myTapListener1 = function(args) {
var item = args.object;
if(item.page.getViewById("mylist").isScrolling) {
console.log("Scroll stopped: " + item.page.getViewById("mylist).isScrolling);
return;
} else {
console.log("unable to stop:" + item.page.getViewById("mylist).isScrolling);
}
}
Js代码需要:
var frame = require('ui/frame');
exports.myTapListener = function(args) {
var page = frame.topmost().currentPage;
if(page.getViewById("mylist").isScrolling) {
console.log(page.getViewById("mylist").isScrolling);
} else {
topmost().navigate("module/a1")
}
}
exports.myTapListener1 = function(args) {
var page = frame.topmost().currentPage;
if(page.getViewById("mylist").isScrolling) {
console.log(page.getViewById("mylist).isScrolling);
} else {
topmost().navigate("module/a2")
}
}
这些事件处理程序中的args.object不是页面对象;但是生成事件的项。因此,您只需要引用currentPage,它frame.topmost()。currentPageJs代码需要:
var frame = require('ui/frame');
exports.myTapListener = function(args) {
var page = frame.topmost().currentPage;
if(page.getViewById("mylist").isScrolling) {
console.log(page.getViewById("mylist").isScrolling);
} else {
topmost().navigate("module/a1")
}
}
exports.myTapListener1 = function(args) {
var page = frame.topmost().currentPage;
if(page.getViewById("mylist").isScrolling) {
console.log(page.getViewById("mylist).isScrolling);
} else {
topmost().navigate("module/a2")
}
}
这些事件处理程序中的args.object不是页面对象;但是生成事件的项。因此,您只需要引用当前页面,它frame.topmost().currentPage我试图停止滚动,然后点击导航,但是页面.getViewById(“mylist”).isScrolling
在滚动时,我得到了错误的响应。我试图停止滚动,然后点击导航,但是页面.getViewById(“mylist”).isScrolling
滚动时,我得到的响应为false。当我在滚动时触摸屏幕时(点击事件引发)。预期结果:停止滚动实际结果是:无法停止滚动。它总是返回false。如果我是真的,那么我可以通过这种方法停止If(item.page.getViewById(“mylist”).isScrolling){console.log(“滚动停止:”+item.page.getViewById(“mylist”).isScrolling);return;}
当我触摸屏幕时(点击事件引发)滚动时。预期结果:停止滚动实际结果是:无法停止滚动。它总是返回false。如果我得到true,那么我可以通过以下方法停止If(item.page.getViewById(“mylist”).isScrolling){console.log(“滚动停止:”+item.page.getViewById(“mylist.isScrolling”);return;