kivymd AttributeError: 'MDNavigationDrawer' object has no attribute 'toggle_state'

kivymd AttributeError: 'MDNavigationDrawer' object has no attribute 'toggle_state'

示例代码似乎有点过时,例如我不得不用 'MDNavigationLayout'.

替换 'NavigationLayout'

我正在使用从 github

下载的最新 kivymd

这是simplest example that I found, but the example code here有同样的问题:

from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window



Window.size = (300, 500)

navigation_helper = """
Screen:
    MDNavigationLayout:
        ScreenManager:
            Screen:
                BoxLayout:
                    orientation: 'vertical'
                    MDToolbar:
                        title: "Navigation Drawer"
                        elevation: 10
                        left_action_items: [['menu', lambda x: nav_drawer.toggle_nav_drawer()]]
                    Widget:
        MDNavigationDrawer:
            id: nav_drawer
"""


class DemoApp(MDApp):

    def build(self):
        screen = Builder.load_string(navigation_helper)
        return screen


DemoApp().run()

正在替换

#left_action_items: [['menu', lambda x: nav_drawer.toggle_nav_drawer()]]

left_action_items: [['menu', lambda x: nav_drawer.set_state('toggle')]]

似乎有效