gpt4 book ai didi

javascript - touchstart 和 touchend 事件不适用于钛的 TableView (Android)

转载 作者:行者123 更新时间:2023-11-29 02:09:43 25 4
gpt4 key购买 nike

我正在使用 Titanium 开发 Android 应用程序。我想在 titanium 的 tableview 上应用 touchstarttouchend 事件。我尝试了以下代码:

var userWin = Ti.UI.currentWindow;
var data = [];
for (var i=0;i<5;i++)
{
var row = Ti.UI.createTableViewRow({height:'auto',className:"row"});
var username = Ti.UI.createLabel(
{
text:'user name',
height:'auto',
font:{fontSize:12, fontFamily:'Helvetica Neue', color:'#000'},
width:'auto',
color:'#000',
textAlign:'left',
top:0,
left:35,
});row.add(username);
var imageView = Ti.UI.createImageView(
{
image:'../images/user.png',
left:0,
top:0,
height:25,
width:25
});row.add(imageView);
}
usertable_table.setData(data);
userWin.add(feed_table);

userWin.addEventListener('touchstart', function(e){
alert(e.x);
// Ti.API.debug(['row touchstart', e]);
});

如果我点击表格的行,它不会弹出窗口,也不会应用 touchstart 事件。但是如果我点击像图像或名称这样的行元素,它会给出输出,即 e.x 的值。即使我在当前窗口上应用这两个事件,它也会给出输出。但是如果我在 TableView 行或 TableView 上应用它就不起作用。实际上,我正在尝试在 table 上滑动事件,但也没有用,所以我尝试了 touchstart 和 touchend 事件。有什么办法可以解决这个问题。

最佳答案

对不起,但你可以read in Titanium Docs Android仍然没有为TableViewRow提供touchstarttouchend。也许您找到了其他解决方案,但也许其他人也遇到了类似的问题,所以我想提供一个可能的解决方案的想法。不幸的是,您可以向该行添加一个监听器,然后您可以单击该行的一个元素。这是因为您可以在 SDK 3.0.0 和更新版本中控制事件冒泡。在以前的版本中,没有防止事件冒泡的选项。

滑动是 Android 也没有提供的手势。如果你想使用类似滑动的手势,你可以在一行中的所有元素之上放置一个透明 View 。

Ti.UI.createView({
width: Ti.UI.FILL,
height: Ti.UI.FILL, //should be row height, can be set explicitely if known
backgroundColor: '#0000', //should be transparent
});

然后您可以将所有类似滑动手势的算法应用于此 View 。尽管此 vie 是用户可用的最顶层元素,但它应该对所有用户输入使用react。但请注意,此透明 View 背后的其他元素上的监听器将不再有反应。

关于javascript - touchstart 和 touchend 事件不适用于钛的 TableView (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com