0

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

1 Answers1

1

Which version of kivymd are you using? try installing with

pip install https://github.com/kivymd/KivyMD/archive/master.zip