最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

python - flet NavigationDrawer control does not close programmatically when opened with View() - Stack Overflow

programmeradmin1浏览0评论

Using flet library in python, I am trying to close a NavigationDrawer control programmatically using a button. The NavigationDrawer is added to the page using a View(), and I want to close the navbar when calling close_drawer() function. I have attached code snippet below, but it does not close the navigation drawer. Please help:

from flet import AppBar, ElevatedButton, NavigationDrawer, Text, View, app, Page


def main():
    app(apprun)

def apprun(page: Page):
    def on_route_change(_):
        page.views.clear()
        page.views.append(
            View(
            route="/",
            controls=[
                    AppBar(title=Text("Navbar example"))
            ]
        ))
        page.views[0].drawer = nav
        page.update()
    def close_drawer(_):
        if page.views[0].drawer is not None:
            nav.open = False
            page.views[0].drawer.open = False
            page.close(nav)
            page.close(page.views[0].drawer)
            page.update()
    nav = NavigationDrawer(
        controls=[
            ElevatedButton(text="close this navbar", on_click=close_drawer)
    ])
    page.on_route_change = on_route_change
    page.go(page.route)


if __name__ == "__main__":
    main()
发布评论

评论列表(0)

  1. 暂无评论