Titanium:为 ListItem/ListView 中的元素设置动画

Titanium: Animate an element in a ListItem/ ListView

我想为 ListItem

中的元素设置动画

例如,考虑以下简单的 ListView:

<ListView>
    <Templates>
        <ItemTemplate name="foo">
            <View layout="vertical">
                <Label color="red" id="label" bindId="bExampleLabel"/>
                <Button onClick="onClickButton">Click Me to make the label go blue</Button>
            </View>
        </ItemTemplate>
    </Templates>

    <ListSection id="exampleListSection">
        <ListItem template="foo" bExampleLabel:text="Example 1"></ListItem>
        <ListItem template="foo" bExampleLabel:text="Example 2"></ListItem>
    </ListSection
</ListView>

和以下脚本:

function onClickButton(e) {
    var item = $.exampleListSection.getItemAt(e.itemIndex);
    item.bExampleLabel = {
        color: 'blue'
    };
    $.exampleListSection.updateItemAt(e.itemIndex, item);
}

上面的XML代码只有一个ListView,其中包含2个ListItem,每个包含一个标签和一个按钮。当您单击该按钮时,它会使标签变为蓝色。

但是我想要它动画它变成蓝色。

通常是这样做的:

$.elementId.animate({
    color: 'blue'
});

但是,我不知道如何在 ListItem 的上下文中执行此操作,因为您似乎无法直接访问对象。

您不能在 listView 中为 ListItem 设置动画,您只能更改使用 bindId 访问的项目属性

templates : Dictionary

Contain key-value pairs mapping a style name (key) to an ItemTemplate (value). This property cannot be changed once a window has been opened.

如果你想在列表中设置动画使用TableView,你可以用TableViewRow做你想做的