Вот пример настраиваемого MDDropdownMenu
с измененным размером и цветами:
from functools import partial
from kivymd.app import MDApp
from kivymd.uix.menu import MDDropdownMenu
from kivymd.toast import toast
from kivy.lang import Builder
from kivy.factory import Factory
Builder.load_string("""
<Menu@Screen>
MDRaisedButton:
size_hint: None, None
size: 3 * dp(48), dp(48)
text: 'Open menu'
opposite_colors: True
pos_hint: {'center_x': .5, 'center_y': .5}
on_release: app.open_menu(self)
""")
class Test(MDApp):
def callback_for_menu_items(self, text):
self.menu.dismiss()
toast(text)
def open_menu(self, button):
self.menu_items = [{"viewclass": "OneLineListItem",
"text": "Example item {}".format(i),
"font_style": "H5",
"theme_text_color": "Custom",
"text_color": [1, 1, 0, 1],
"bg_color": [1, 0, 1, 1],
"on_release": partial(self.callback_for_menu_items,
"Example item {}".format(i))}
for i in range(15)]
self.menu = MDDropdownMenu(items=self.menu_items, width_mult=4)
self.menu.open(button)
def build(self):
return Factory.Menu()
Test().run()
ОБНОВЛЕНИЕ: добавлен способ вручную закрыть раскрывающийся список