将标签动态添加到 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 )
在 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 )