-
-
Notifications
You must be signed in to change notification settings - Fork 673
Components Navigation Drawer
Artem Bulgakov edited this page Sep 2, 2019
·
10 revisions
from kivy.app import App
from kivy.lang import Builder
from kivymd.navigationdrawer import NavigationDrawerIconButton
from kivymd.theming import ThemeManager
from kivymd.toast import toast
main_kv = """
#:import MDSeparator kivymd.cards.MDSeparator
#:import MDToolbar kivymd.toolbar.MDToolbar
##:import NavigationLayout kivymd.navigationdrawer.NavigationLayout
#:import MDNavigationDrawer kivymd.navigationdrawer.MDNavigationDrawer
#:import NavigationDrawerSubheader kivymd.navigationdrawer.NavigationDrawerSubheader
<ContentNavigationDrawer@MDNavigationDrawer>:
drawer_logo: 'demos/kitchen_sink/assets/drawer_logo.png'
NavigationDrawerSubheader:
text: "Menu:"
NavigationLayout:
id: nav_layout
ContentNavigationDrawer:
id: nav_drawer
BoxLayout:
orientation: 'vertical'
MDToolbar:
id: toolbar
title: 'KivyMD Kitchen Sink'
md_bg_color: app.theme_cls.primary_color
background_palette: 'Primary'
background_hue: '500'
elevation: 10
left_action_items:
[['dots-vertical', lambda x: app.root.toggle_nav_drawer()]]
Widget:
"""
class Example(App):
theme_cls = ThemeManager()
theme_cls.primary_palette = 'Teal'
title = "Navigation Drawer"
main_widget = None
def build(self):
self.main_widget = Builder.load_string(main_kv)
return self.main_widget
def callback(self, instance, value):
toast("Pressed item menu %d" % value)
def on_start(self):
for i in range(15):
self.main_widget.ids.nav_drawer.add_widget(
NavigationDrawerIconButton(
icon='checkbox-blank-circle', text="Item menu %d" % i,
on_release=lambda x, y=i: self.callback(x, y)))
Example().run()