【问题标题】:KivyMD: MDDropDownItem not setting on Android; works on desktopKivyMD:Android 上未设置 MDDropDownItem;在桌面上工作
【发布时间】:2021-02-08 13:50:07
【问题描述】:

我正在 Kivy/KivyMD 中开发我的第一个应用程序,但遇到了以下问题:

我已经使用 buildozer 构建了我的应用程序,当我在我的 android 手机上打开它时,MDDropDownItem 会正确打开,但是当我点击它时不会设置新项目(甚至关闭)。它在我的桌面上运行正常。

相关代码(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

【问题讨论】:

    标签: python android kivy kivymd


    【解决方案1】:

    您使用的是哪个版本的 kivymd?尝试安装

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

    【讨论】:

    • 不,问题仍然存在。太奇怪了,唯一不起作用的是新项目的DropDownMenu设置。
    • 你能分享一个最小的例子让我自己运行吗?
    猜你喜欢
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    相关资源
    最近更新 更多