Ich habe eine ListView, aber ich muss Zellen zu jedem ListItem hinzufügen, ich weiß nie, wie viele Zellen ich hinzufügen muss, das ist möglich?Controller zu ListView Template hinzufügen
Ich kann keine Ansichten zum ListItem innerhalb der Vorlage hinzufügen, ich habe id und bindId ist gleich 'Zeile' auf ListItem-Element.
Die einzige andere Lösung, an die ich denken kann, ist, wie 12 Zellen zu haben, und diejenigen zu verstecken, die ich nicht brauche.
//widget.xml
<Alloy>
<View id="widget">
<ListView id="list" defaultItemTemplate="list">
<Templates>
<ItemTemplate name="list" bindId="row" id="row"/>
</Templates>
<ListSection/>
</ListView>
</View>
</Alloy>
Ich habe ein Array mit dem bindId der zu jeder Zelle hinzuzufügen:
//cell.js
$.title.bindId = args.cell;
//cell.xml
<Alloy>
<View id="cell">
<Label id="title"/>
</View>
</Alloy>
I 12 Zellen haben, mit einer Breite auf 0 gesetzt ist gleich, und ich bin Einstellung nur die Breite auf die Spalten, die ich benutze, die anderen bleiben verborgen. Dies ist meine eigentliche Datei:
<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>
Dieser Teil meines Controller ist:
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);
Danke, nur noch eine Frage, über das Raster Layout, gibt es eine Möglichkeit, das in Alloy zu tun? ein ListView gedreht -90º Grad? Um zu überprüfen, ob ich einen Workaround dafür herausfinden kann: https://stackoverflow.com/questions/35433035/tableview-content-hidden-on-rows-that-are-not-screen-visible-android –
Ein anderer Speicher/Leistung Zweifel, was ist die beste Methode: 1) 1 Vorlage mit 12 Spalten; 2) 12 Vorlagen mit der richtigen Anzahl von Spalten für jeden? –
Sie müssten testen, aber ich denke 12 Vorlagen würden besser funktionieren, insbesondere wenn Sie viele Zeilen haben. –