Widget exampel update.
@@ -16,6 +16,8 @@ impl Default for MainViewState {
"Item 2".to_string(),
"Item 3".to_string(),
"Last Item".to_string(),
+ "Last Item".to_string(),
+ "Last Item".to_string(),
],
}
}
@@ -53,8 +55,8 @@ widget!(
impl Template for MainView {
fn template(self, id: Entity, context: &mut BuildContext) -> Self {
let state = self.clone_state();
-
let list_state = self.clone_state();
+ let list_count = list_state.list.len();
self.name("MainView").count_text("Button count: 0").child(
Grid::create()
@@ -62,24 +64,16 @@ impl Template for MainView {
.columns(
Columns::create()
.column("Auto")
- .column(32.0)
+ .column(16.0)
+ .column("Auto")
+ .column(16.0)
.column("Auto")
- .column(32.0)
- .column(120.0)
- .column("*")
- .build(),
- )
- .rows(
- Rows::create()
- .row("Auto")
- .row("Auto")
- .row("Auto")
- .row("Auto")
- .row("Auto")
- .row("Auto")
- .row("*")
.build(),
)
+ .child(
+ Stack::create()
+ .attach(GridColumn(0))
+
// Column 0
.child(create_header(context, "Button", 0, 0))
.child(
@@ -128,7 +122,12 @@ impl Template for MainView {
.attach(GridRow(5))
.build(context),
)
- // Column 2
+
+ .build(context),
+ )
+ .child(
+ Stack::create()
+ .attach(GridColumn(2))
.child(create_header(context, "Text", 2, 0))
.child(
TextBlock::create()
@@ -147,22 +146,26 @@ impl Template for MainView {
.attach(GridColumn(2))
.attach(GridRow(2))
.build(context),
+ ).build(context)
)
- // Column 4
- .child(create_header(context, "Items", 4, 0))
+ .child(
+ Grid::create()
+ .rows(Rows::create().row("Auto").row("*").build())
+ .attach(GridColumn(4))
+ .child(create_header(context, "Items", 0, 0))
.child(
ItemsWidget::create()
- .max_height(192.0)
+ .attach(GridRow(1))
+ .vertical_alignment("Start")
.margin((0.0, 8.0, 0.0, 0.0))
.items_builder(move |bc, index| {
Button::create()
.text(list_state.list[index].as_str())
.build(bc)
})
- .items_count(4)
- .attach(GridColumn(4))
- .attach(GridRow(1))
- .attach(RowSpan(5))
+ .items_count(list_count)
+ .build(context),
+ )
.build(context),
)
.build(context),
