一度に 1 つずつ表示され、クリック イベントで切り替えられる、展開されたビューと折りたたまれたビューを考えてみましょう。
TableRowView では、TableViewRow の高さを設定し、展開されたビューと折りたたまれたビューを切り替えることができます。ビューは表示されますが、TSS スタイル (背景色など) が失われます。
次に示す Alloy プロジェクトの例を次に示します。
index.xml:
<TableView>
<TableViewRow id="row">
<View id="staticSection">
<Label>static section</Label>
</View>
<View id="collapsedView" onClick="expand">
<Label>collapsed</Label>
</View>
<View id="expandedView" onClick="collapse">
<Label>expanded</Label>
</View>
<View id="staticRuler">
</View>
</TableViewRow>
<TableViewRow>
<Label>next row</Label>
</TableViewRow>
</TableView>
</Window>
</Alloy>
index.tss:
".container": {
backgroundColor:"white"
},
"TableView": {
separatorColor: 'transparent'
}
"#row": {
layout: 'vertical'
}
"#staticSection": {
height: 25
}
"#collapsedView": {
height: 50,
backgroundColor: '#dfd'
}
"#expandedView": {
height: 100,
backgroundColor: '#fdd'
}
"#staticRuler": {
width: Ti.UI.FILL,
height: 5,
backgroundColor: '#666'
}
index.js:
$.index.open();
function expand() {
$.expandedView.visible = true;
$.collapsedView.visible = false;
$.row.height = 130;
}
function collapse() {
$.expandedView.visible = false;
$.collapsedView.visible = true;
$.row.height = 80;
}
collapse();
Alloy コレクションにデータバインドでき、スタイルを保持する展開/折りたたみビューを作成するにはどうすればよいですか? ScrollView またはその他の非 TableView 要素がこれに適している場合 (ListView?)、実際の例を示すことができますか?