我正在动态创建一个TableView,我希望TableViewRow样式交替使用不同的布局,而不仅仅是简单的背景颜色。
无论哪个TableViewRow首先在我的XML中显示为空行。例如,保持JS不变,如果我将contentRowRight放在我的XML中的contentRowLeft之上,只有我的奇数行显示数据(左)。如果我在XML中交换视图顺序,那么只有偶数行显示数据(右)。
我认为我对controller.getView的理解是错误的,或者我的XML格式缺少了什么。
Javascript代码......
// Populate table with data
var toggleAlign = true;
data.forEach(function(item) {
var newRow = Alloy.createController('contentRow', item).getView(toggleAlign ? 'contentRowLeft' : 'contentRowRight');
$.tblContent.appendRow(newRow);
toggleAlign = !toggleAlign;
});
XML代码......
<Alloy>
<TableViewRow id="contentRowRight" class="content-row">
<View class="thumbnail right">
<ImageView id="imgThumbnail"></ImageView>
</View>
<View class="text-content content-left">
<Label id="lblTitle"></Label>
<Label id="lblDate"></Label>
</View>
</TableViewRow>
<TableViewRow id="contentRowLeft" class="content-row">
<View class="thumbnail left">
<ImageView id="imgThumbnail"></ImageView>
</View>
<View class="text-content content-right">
<Label id="lblTitle"></Label>
<Label id="lblDate"></Label>
</View>
</TableViewRow>
</Alloy>