我正在使用 Appcelerator 平台开发应用程序,但遇到了问题。
我有一个带有自定义模板的列表视图,我在其中使用远程图像(许多不同大小)填充 ImageView。我希望它们缩放到 100% 宽度和自动高度(宽度和高度为 Ti.UI.Fill 和 Ti.UI.SIZE)。
如果我没有为图像的容器设置高度,则此方法有效,但我希望我的所有 ListItems 具有相同的高度并掩盖太高图像的任何溢出。
当我设置固定高度时,它会尝试将图像放入容器中,因此在左/右或上/下都有边框,具体取决于图像的纵横比(似乎忽略了 Ti.UI.Fill)。
使用 ScrollView 作为容器并禁用滚动以实现我想要的有一个技巧,但是在 Listview 中添加 ScrollView 会使应用程序崩溃。
这能实现吗?
编辑:添加一些示例代码。
这是我的模板声明:
<Templates>
<ItemTemplate name="eventsListTemplate">
<Label bindId="name" id="name" />
<View id="coverContainer">
<ImageView bindId="cover" id="cover" />
<View id="overlay"></View>
</View>
<Label bindId="startTime" id="startTime" />
<Label bindId="place" id="place" />
</ItemTemplate>
</Templates>
这是我用数据填充列表项的地方:
var mapped = _.map(events,function(event){
return {
name : { text : event.name },
cover : { image : (event.cover) ? event.cover.source : ''},
startTime : { text : Alloy.Globals.formatDate(event.startTime) },
place : { text : (event.place) ? event.place.name : event.owner.name },
id : event.id
};
});
以及相关样式:
"#cover" :{
width: Titanium.UI.FILL,
height : Titanium.UI.SIZE
},
"#coverContainer":{
height: 120
},