我怎样才能顺利#34;在Android上的ListView中滚动

时间:2016-04-08 08:37:56

标签: android listview appcelerator appcelerator-titanium

我正在使用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上,它会触发事件....

0 个答案:

没有答案