将标签动态添加到 ListViewItem 中的视图中

Add labels dynamically into a view in a ListViewItem

在 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"/>

我正在使用以下代码 return 一些数据来填充我的 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,我得到了预期的结果。 'envelopes' 视图是一个包含标签 'first' 的绿色矩形。在 Android 上,这似乎不起作用。我只得到绿色矩形,但没有添加子项。

有人知道如何解决这个 Android 特定问题吗?如何将标签添加到列表视图中的视图?

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

children 属性 它不应该起作用,但在 iOS 中它起作用。

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

我创建了一个与此相关的问题:Get bindId from added data to an TableView inside a ListView (Titanium/Alloy),在这种情况下,我也尝试过以这种方式将数据设置为 TableView,但仍然没有成功。

总之,不推荐这样做。

在你的情况下我认为你不需要,但如果你想知道选择的 bindId,你不能,只有在 ItemTemplate 中定义的视图和标签(使用 Alloy )