diff --git a/sdk/python/examples/apps/declarative/sunflower.py b/sdk/python/examples/apps/declarative/sunflower.py index 94f3b1fc8..f90183e0b 100644 --- a/sdk/python/examples/apps/declarative/sunflower.py +++ b/sdk/python/examples/apps/declarative/sunflower.py @@ -78,42 +78,47 @@ def Sunflower(): return ft.View( appbar=ft.AppBar(title=ft.Text("Sunflower")), controls=[ - ft.Column( - horizontal_alignment=ft.CrossAxisAlignment.CENTER, - expand=True, - controls=[ - ft.Container( - content=ft.Stack( - controls=[MemoSeedView(s, key=s.key) for s in app.seeds], - aspect_ratio=1.0, + ft.SafeArea( + ft.Column( + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + expand=True, + controls=[ + ft.Container( + content=ft.Stack( + controls=[ + MemoSeedView(s, key=s.key) for s in app.seeds + ], + aspect_ratio=1.0, + ), + alignment=ft.Alignment.CENTER, + expand=True, + ), + ft.Row( + [ + ft.Text( + f"Showing {round(app.seeds_count)} " + f"seed{'s' if app.seeds_count != 1 else ''}" + ) + ], + alignment=ft.MainAxisAlignment.CENTER, ), - alignment=ft.Alignment.CENTER, - expand=True, - ), - ft.Row( - [ - ft.Text( - f"Showing {round(app.seeds_count)} " - f"seed{'s' if app.seeds_count != 1 else ''}" - ) - ], - alignment=ft.MainAxisAlignment.CENTER, - ), - ft.Row( - [ - ft.Slider( - min=1, - max=MAX_SEEDS, - value=app.seeds_count, - width=300, - on_change=lambda e: app.update_seeds_count( - cast(float, e.control.value) - ), - ) - ], - alignment=ft.MainAxisAlignment.CENTER, - ), - ], + ft.Row( + [ + ft.Slider( + min=1, + max=MAX_SEEDS, + value=app.seeds_count, + width=300, + on_change=lambda e: app.update_seeds_count( + cast(float, e.control.value) + ), + ) + ], + alignment=ft.MainAxisAlignment.CENTER, + ), + ], + ), + expand=True, ) ], ) diff --git a/sdk/python/packages/flet/src/flet/controls/page.py b/sdk/python/packages/flet/src/flet/controls/page.py index 573b6b66f..d6474b2e8 100644 --- a/sdk/python/packages/flet/src/flet/controls/page.py +++ b/sdk/python/packages/flet/src/flet/controls/page.py @@ -467,12 +467,11 @@ def before_event(self, e: ControlEvent): self.query() elif isinstance(e, ViewPopEvent): - views = unwrap_component(self.views) - view_index = next( - (i for i, v in enumerate(views) if v.route == e.route), None - ) - if view_index is not None: - e.view = views[view_index] + for v in unwrap_component(self.views): + v = unwrap_component(v) + if v.route == e.route: + e.view = v + break return super().before_event(e)