gpt4 book ai didi

android - onTouchstart 事件不会在 Listview(Alloy) 中触发,只有 Android

转载 作者:行者123 更新时间:2023-11-30 01:02:27 24 4
gpt4 key购买 nike

view xml( ListView 模板)

<Alloy>
<ItemTemplate id="test">

<View onTouchstart="touch" width="Ti.UI.SIZE" height="Ti.UI.SIZE">
<Label>test</Label>
</View>

</ItemTemplate>
</Alloy>

Controller js

function touch(e){
Ti.API.debug('touch!!');
};

不只触发 android..(iOS 很好)

下不要用ListView代码,android(和iOS)没问题。

<Alloy>
<Window class="container">
<View onTouchstart="touch" width="Ti.UI.SIZE" height="Ti.UI.SIZE">
<Label>test</Label>
</View>
</Window>
</Alloy>

不知道有没有人解决?

最佳答案

ListView 没有“touchstart”方法,您可以使用“dragstart”和“scrollstart”作为替代方法。

查看可用事件:

http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ListView

我曾尝试将“更改”事件添加到 ItemTemplace 内的 TextField,但我必须创建一个解决方法:

Change event on TextField inside ListView Template

如果不可能,您必须使用“itemclick”并获取选定的行:

$.list.addEventListener('itemclick',function(list) {

var row = $.list.sections[0].getItemAt(list.itemIndex);

if(row && row.title) {

row.title.text = 'hello world';

//when you click the View with 'cancel' bindId
if(list.bindId == 'cancel') yourCancelAction();

//when you click the View with 'save' bindId
//(if you need to pass the row index to the function,
//in order to update something on the clicked row with a external function)
if(list.bindId == 'save') yourSaveAction(list.itemIndex);

$.list.sections[0].updateItemAt(list.itemIndex,row);
}

list = row = null;
});

关于android - onTouchstart 事件不会在 Listview(Alloy) 中触发,只有 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39246028/

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