我正在使用Appcelerator开发跨平台原生应用。
我有一个小问题,我认为应该可以解决 - 但到目前为止我还没有找到解决方案。深入了解此情况后,我可以看到定义swipe
事件处理程序会导致<ListView>
(或<ScrollView>
)滚动非常 粘性 (而不是顺利)。
一个简单的样本:
查看:
<Alloy>
<Window class="container">
<View>
<Label id="label">My list...</Label>
<ListView id="nameList" defaultItemTemplate="templateName" onItemclick="onSelect">
<Templates>
<ItemTemplate name="templateName">
<Label bindId="name"/>
</ItemTemplate>
</Templates>
<ListSection>
<ListItem/>
</ListSection>
</ListView>
</View>
</Window>
</Alloy>
样式:
".container": {
top: 20,
backgroundColor:"white",
orientationModes: [Ti.UI.PORTRAIT]
}
"Label": {
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
backgroundColor: 'transparent',
left:10,
color: "#000"
}
"#label": { top:15,
font: {
fontSize: '18dp',
fontStyle: 'bold'
}
}
"#nameList":{
top:'50dp'
}
控制器:
function onSelect(e) {
var section = $.nameList.sections[e.sectionIndex];
var item = section.getItemAt(e.itemIndex);
console.log("index=" + e.itemIndex + ", item: " +JSON.stringify(item));
}
var list = [];
for(var i=0; i<50; i++){
var item = {template: "templateName",name : { text: "Item " + i }};
list.push(item);
}
console.log("Set list items");
$.nameList.sections[0].items = list;
$.index.open();
$.index.addEventListener('swipe',function(e){
console.log("... swiped: " + JSON.stringify(e));
});
...然后在Android设备上运行此应用程序(我在Android 6设备上运行 - 但在其他Android版本上看到了问题)。
任何人都知道如何消除&#34;粘性&#34;?
/约翰
*编辑:
我发现可能是造成这种情况的根本原因之一。如果我在iPhone上向上/向下滚动它不会触发swipe
事件。但是,在Android上,它会触发事件....