У меня проблема с динамическим заполнением моего контекстного меню путем извлечения данных из базы данных. Однако контекстное меню переполняется за пределы экрана.
Есть ли способ сделать его прокручиваемым или сделать контекстное меню заполненным вниз, а не вверх?
![enter image description here](https://i.stack.imgur.com/aLQeG.png)
Это мой файл:
from kivy.lang import Builder
from UltimateDropDown import UltimateDropDownApp
from Database import Database
if __name__ == '__main__':
db = Database()
db.populateChangeTypes()
kv = """
#: import HoverLabel HoverBehavior
#: import ContextMenu kivy.garden.contextmenu
UltimateDropDown:
<UltimateDropDown>:
id: layout
ModifiedHoverLabel:
id: hover_label
pos: 10, self.parent.height - self.height - 10
text: "Left click anywhere outside the context menu to close it"
size_hint: None, None
size: self.texture_size
on_enter: context_menu.show(*app.root_window.mouse_pos)
Button:
size_hint: None, None
pos_hint: {"center_x": 0.5, "center_y": 0.8 }
size: 300, 40
text: "Click me to show the context menu"
on_release: context_menu.show(*app.root_window.mouse_pos)
ContextMenu:
id: context_menu
visible: False
cancel_handler_widget: layout
"""
str_list = []
for item in db.changeTypeToId:
str_list.append("""
ContextMenuTextItem:
text: """ + '"{0}"'.format(item) + """""")
kv += ''.join(str_list)
Builder.load_string(kv)
udda = UltimateDropDownApp()
udda.run()
Единственный код, который уместен здесь, это контекстное меню Kivy Garden (из GitHub).
Дополнительное примечание : контекстное меню выглядит хорошо, если под 20 пунктов. Начинает заполняться вверх при переполнении.