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

时间:2017-04-15 20:03:02

标签: titanium appcelerator appcelerator-titanium titanium-alloy appcelerator-alloy

我想为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

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

1 个答案:

答案 0 :(得分:1)

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

  

templates:Dictionary

     

包含将样式名称(键)映射到ItemTemplate(值)的键值对。   一旦窗口打开,就无法更改此属性。

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