将标签动态添加到ListViewItem

时间:2017-01-04 19:06:31

标签: android titanium-mobile appcelerator-titanium titanium-alloy appcelerator-alloy

在Appcelerator Titanium中,我为ListView示例提供了以下XML:

<ListView class="fill-height" defaultItemTemplate="item">
<Templates>
    <ItemTemplate name="item" height="100dp">
        <View class="top-10 left-10 right-10 bottom-10" layout="vertical">
            <View class="size-height fill-width">
                <Label class="left title" bindId="name"/>
                <Label class="right description" bindId="number"/>
            </View>
            <Label class="top-5 left fill-width description" height="13dp" bindId="direction"/>
            <View width="100dp" height="40dp" layout="vertical" backgroundColor="green" bindId="envelopes">
            </View>
        </View>
    </ItemTemplate>
</Templates>

<ListSection id="items"/>

我正在使用以下代码返回一些数据来填充我的ListView:

return {
    name: {text: object.name},
    number: {text: object.number},
    direction: {text: object.direction},
    envelopes: { children: [Titanium.UI.createLabel({
        text: "first",
        width:'30dp',
        height:'30dp'
    })]}
}

这是一些演示数据,但此代码会在Android上产生不同的行为,然后在iOS上。

在iOS上,我得到了预期的结果。 '信封'视图是一个绿色矩形,包含标签'first'。在Android上,这似乎不起作用。我只得到绿色矩形,但没有添加孩子。

有谁知道如何解决此Android特定问题?如何在列表视图中为视图添加标签?

使用XML向信封添加标签时(在<View></View>之间),会显示标签。尝试使用children-property添加它时,标签不会添加到视图中。

1 个答案:

答案 0 :(得分:0)

它不应该起作用的儿童属性,但在iOS中确实如此。

我遇到了同样的问题,在android中工作的唯一解决方案是在模板中包含标签。

我已经创建了与此相关的问题:Get bindId from added data to an TableView inside a ListView (Titanium/Alloy),在这种情况下,我还尝试将数据设置为TableView,但仍未成功。

无论哪种方式,都不建议这样做。

在您的情况下,我认为您不需要,但如果您想知道所选的bindId,则不能只知道ItemTemplate中定义的视图和标签(使用Alloy)< / p>