I'm developping my first app in Kivy/KivyMD and I've run into the following problem:
I've build my app using buildozer and when I open it on my android phone, the MDDropDownItem opens correctly, but doesn't set the new item (or even closes for that matter) when I tap it. It does work correctly on my desktop.
Relevant code (main.py):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.screen = Builder.load_string('''
<ContentNavigationDrawer>:
orientation: 'vertical'
padding: "8dp"
spacing: "8dp"
ScrollView:
MDList:
OneLineListItem:
text: 'Post Mortem Interval'
on_press:
root.nav_drawer.set_state('close')
root.screen_manager.current = 'Post Mortem Interval'
Screen:
BoxLayout:
orientation: 'vertical'
MDToolbar:
id: toolbar
pos_hint: {'top': 1}
elevation: 10
title: screen_manager.current
left_action_items: [['menu', lambda x: nav_drawer.set_state('open')]]
NavigationLayout:
x: toolbar.height
ScreenManager:
id: screen_manager
Screen:
name: 'Post Mortem Interval'
MDBottomNavigation:
MDBottomNavigationItem:
name: 'pmi'
MDTabs:
id: tabs
Tab:
text: 'Calculate'
MDDropDownItem:
id: drop_item_cover
pos_hint: {'center_x': .5, 'center_y': .57}
text: 'cover'
on_release: app.menu_cover.open()
MDDropDownItem:
id: drop_item_surFact
pos_hint: {'center_x': .5, 'center_y': .47}
text: 'factors'
on_release: app.menu_surFact.open()
''')
menu_items_cover = [{"text": "Naked"},
{"text": "OneToTwoThicker"},
{"text": "OneToTwoThin"},
{"text": "TwoToThree"},
{"text": "ThreeToFour"},
{"text": "MoreLayers"},
{"text": "BedspreadLight"},
{"text": "BedspreadFully"},
]
self.menu_cover = MDDropdownMenu(caller=self.screen.ids.drop_item_cover, items=menu_items_cover, position="center", width_mult=4)
self.menu_cover.bind(on_release=self.set_item_cover)
menu_items_surFact = [{"text": "StillAirBodyDry"},
{"text": "MovingAirBodyDry"},
{"text": "StillAirBodySoaked"},
{"text": "MovingAirBodySoaked"},
{"text": "StillWater"},
{"text": "FlowingWater"},
]
self.menu_surFact = MDDropdownMenu(caller=self.screen.ids.drop_item_surFact, items=menu_items_surFact, position="center", width_mult=7)
self.menu_surFact.bind(on_release=self.set_item_surFact)
def set_item_cover(self, instance_menu, instance_menu_item):
self.screen.ids.drop_item_cover.set_item(instance_menu_item.text)
self.menu_cover.dismiss()
self.cover = instance_menu_item.text #Retrieve the user input
return self.cover #Retrieve the user input
def set_item_surFact(self, instance_menu, instance_menu_item):
self.screen.ids.drop_item_surFact.set_item(instance_menu_item.text)
self.menu_surFact.dismiss()
self.surFact = instance_menu_item.text #Retrieve the user input
return self.surFact #Retrieve the user input