0
我有一個ListView,但我需要添加單元格到每個ListItem,我永遠不知道我需要添加多少單元格,這是可能的?添加控制器到ListView模板
我不能添加視圖到模板內的ListItem,我有id和bindId等於'行'ListItem元素上。
我能想到的唯一的其他解決方案是擁有像12個單元格,並隱藏我不需要的單元格。
//widget.xml
<Alloy>
<View id="widget">
<ListView id="list" defaultItemTemplate="list">
<Templates>
<ItemTemplate name="list" bindId="row" id="row"/>
</Templates>
<ListSection/>
</ListView>
</View>
</Alloy>
我已經與bindId的陣列,以添加到每個小區:
//cell.js
$.title.bindId = args.cell;
//cell.xml
<Alloy>
<View id="cell">
<Label id="title"/>
</View>
</Alloy>
我已經12個細胞,用寬度設定等於0,和我設置僅在寬度我正在使用的列,其他列保持隱藏狀態。這是我的實際文件:
<ListView id="list" defaultItemTemplate="item">
<Templates>
<ItemTemplate name="item" class="item" id="item" bindId="item">
<View id="row" bindId="row">
<View class="cell" bindId="cell1" id="cell1">
<View class="border left"/>
<Label class="title" bindId="title1" id="title1"/>
<View class="border right"/>
<View class="line"/>
</View>
....
<View class="cell" bindId="cell12" id="cell12">
<View class="border left"/>
<Label class="title" bindId="title12" id="title12"/>
<View class="border right"/>
<View class="line"/>
</View>
</View>
</ItemTemplate>
</Templates>
<ListSection/>
</ListView>
這是我的控制器的一部分:
data.items = [];
for(var i = 0; i < 100; i++) if(data.list[i]) {
var row = {
properties:{
searchableText:''
}
};
for(var c in args.columns) {
row.properties.searchableText += data.list[i][args.columns[c].alias]+' ';
row['cell'+parseInt(parseInt(c)+1)] = {
width:data.width
};
row['title'+parseInt(parseInt(c)+1)] = {
text:data.list[i][args.columns[c].alias]
};
}
data.items.push(row);
};
$.list.sections[0].setItems(data.items);
謝謝,關於網格佈局的另外一個問題,有一種方法可以在Alloy中做到這一點? ListView旋轉-90º度?檢查是否可以找出解決方法:https://stackoverflow.com/questions/35433035/tableview-content-hidden-on-rows-that-are-not-screen-visible-android –
另一個內存/性能懷疑,最好的方法是什麼:1)有12列的1個模板; 2)每個模板有12個正確的列數? –
你必須測試,但我認爲12個模板會更好,尤其是如果你有很多行。 –