Совместное использование нижней панели навигации и диспетчера экрана в kivy - PullRequest
0 голосов
/ 11 июля 2020

Я бы использовал нижнюю панель навигации для своего приложения в kivy. К сожалению, я не могу. Вы можете мне помочь?

Приложение показывает мне только экран с именем «PresenzeScreen», но я также вижу нижнюю панель навигации. Спасибо!

# Here I declare the classes of the screens

    class Manager(ScreenManager):
            presenze = ObjectProperty(None)
    
    
    class PresenzeScreen(Screen):
            def switch(self):
                    self.parent.current = 'presenze'
    sm = Manager()
    sm.add_widget(PresenzeScreen( name ='presenze'))


# Here I write the bottom navigation bar

KV = """
Screen:
        MDBottomNavigation:
                panel_color: .2, .2, .2, 1
                MDBottomNavigationItem:
                        name: 'screen 1'
                        text: 'Presenze'
                        on_enter: root.switch()

                       
                                        

                MDBottomNavigationItem:
                        name: 'screen 2'
                        text: 'Test'
                                        

                        MDLabel:
                                text: 'Qua ci sono i test'
                                halign: 'center'

                MDBottomNavigationItem:
                        name: 'screen 3'
                        text: 'Orari'
                                        
                                        
                        MDLabel:
                                text: 'Qua ci sono gli orari degli allenamenti'
                                halign: 'center'

# And here the screen manager

<PresenzeScreen>:
        MDLabel:
                text: 'Ci sei riuscito finalmente'
                haling: 'center'
<Manager>:
        id: screen_manager
        
                
        presenze: presenze 
                
        PresenzeScreen:
                id: presenze
                name: 'presenze'
                manager: screen_manager
       
"""

class MainApp(MDApp):
        
        dialog = None
        def build(self):
               Builder.load_string(KV)
               return Manager()
        
       
MainApp().run()

1 Ответ

0 голосов
/ 11 июля 2020

Вам нужно отредактировать ваш .kv файл следующим образом:

KV = """
<PresenzeScreen>:
        MDBottomNavigation:
                panel_color: .2, .2, .2, 1
                MDBottomNavigationItem:
                        name: 'screen 1'
                        text: 'Presenze'
                        on_enter: root.switch()     
                        MDLabel:
                                text: 'Ci sei riuscito finalmente'
                                haling: 'center'                   
                MDBottomNavigationItem:
                        name: 'screen 2'
                        text: 'Test'
                        MDLabel:
                                text: 'Qua ci sono i test'
                                halign: 'center'
                MDBottomNavigationItem:
                        name: 'screen 3'
                        text: 'Orari'
                        MDLabel:
                                text: 'Qua ci sono gli orari degli allenamenti'
                                halign: 'center'
<Manager>:
        id: screen_manager
        presenze: presenze 
        PresenzeScreen:
                id: presenze
                name: 'presenze'
                manager: screen_manager
"""
...