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()