如何将 MDDropdownMenu 放在 KivyMD 中的 MDlist 项目上?
Posted
技术标签:
【中文标题】如何将 MDDropdownMenu 放在 KivyMD 中的 MDlist 项目上?【英文标题】:How to put MDDropdownMenu over MDlist item in KivyMD? 【发布时间】:2021-02-21 16:56:32 【问题描述】:我有一个 ScrollView,我有 MDList,我希望“当我点击 MDlist 项目时,MDDropdownMenu 应该正好在该项目上打开”。
ScrollView:
pos_hint: 'center_x': .5, 'center_y': .4
MDList:
pos_hint: 'center_x': .5, 'center_y': .85
id: box
【问题讨论】:
【参考方案1】:from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.uix.list import OneLineListItem
from kivymd.uix.menu import MDDropdownMenu
KV = """
ScrollView:
MDList:
id: box
cols: 1
"""
class Test(MDApp):
def build(self):
return Builder.load_string(KV)
def show_menu(self, instance):
menu_items = ["text": f"Item i" for i in range(5)]
menu = MDDropdownMenu(caller=instance, items=menu_items, width_mult=4
)
menu.open()
def on_start(self):
for i in range(20):
self.root.ids.box.add_widget(
OneLineListItem(text=f"Item i", on_release=self.show_menu)
)
Test().run()
【讨论】:
谢谢先生!有效!但是下拉菜单打开有点慢有什么建议吗?以上是关于如何将 MDDropdownMenu 放在 KivyMD 中的 MDlist 项目上?的主要内容,如果未能解决你的问题,请参考以下文章