KivyMD
KivyMD copied to clipboard
MDDropdownMenu position isn't working
MDDropdownMenu position isn't working

` from kivymd.app import MDApp from kivy.lang import Builder from kivy.metrics import dp from kivymd.uix.menu import MDDropdownMenu
KV = ''' MDScreen:
MDBottomNavigation:
selected_color_background: "#97ecf8"
text_color_active: 0, 0, 0, 1
MDBottomNavigationItem:
name: 'screen 1'
text: 'Page 1'
icon: 'home'
badge_icon: ""
MDBoxLayout:
orientation: "vertical"
MDTopAppBar:
id: "bar"
title: "Page 1"
elevation: 6
GridLayout:
cols: 1
#orientation: 'vertical'
padding: 20
spacing: 20
size: root.width, root.height
TextInput:
id: text_input_nr_mod
hint_text: "TEST"
valign: 'middle'
halign: 'left'
multiline: False
MDBottomNavigationItem:
name: 'screen 2'
text: 'Page 2'
icon: 'email'
badge_icon: "numeric-5"
BoxLayout:
orientation: 'vertical'
MDTopAppBar:
id: "bar"
title: "Page 2"
elevation: 6
ScrollView:
MDList:
id: container
elevation: 4
MDBottomNavigationItem:
name: 'screen 3'
text: 'Page 3'
icon: 'cog'
badge_icon: ""
MDBoxLayout:
id: screen
orientation: "vertical"
MDTopAppBar:
title: "Page 3"
elevation: 6
pos_hint: {'top': 1}
GridLayout:
cols: 1
padding: 20
spacing: 20
MDRaisedButton:
id: menu_mitarbeiter
text: "Mitarbeiter:"
size_hint: (1, None)
pos_hint: {'top': 1}
font_size: '16dp'
on_release: app.menu_names_open()
elevation: 4
'''
class Test(MDApp):
def build(self):
self.theme_cls.material_style = "M3"
self.theme_cls.theme_style = "Light"
self.root = Builder.load_string(KV)
self.names_list = sorted(["Ben", "Bine", "Micha", "Felix", "Fatlind", "Gerd", "Philipp", "Marcel", "Büb"])
def on_start(self):
self.menu_names_list = []
for each in self.names_list:
# ach = each.decode('utf-8')
self.menu_names_list.append({
"viewclass": "OneLineListItem",
"text": each,
"height": dp(56),
"on_release": lambda x=each: self.menu_names_select(x)
# "callback": self.select1(each)
})
self.menu_names = MDDropdownMenu(
caller = self.root.ids.menu_mitarbeiter,
items = self.menu_names_list,
max_height = dp(224),
position="bottom",
width_mult=8)
def menu_names_select(self, x):
self.menu_names.dismiss()
print(x)
def menu_names_open(self):
self.menu_names.open()
Test().run() `