如何阻止 MDSwiper 重叠 KivyMD 底栏应用程序

我正在练习 KivyMD Swiper,出于某种原因,它覆盖了底部栏应用程序,问题:请问我该如何解决这个问题。

这是我的 main.py 文件:

from kivymd.app import MDApp
from kivy.uix.screenmanager import Screenmanager,Screen,NoTransition

from kivy.core.window import Window

Window.size = (300,500)


class IntroScreen(Screen):
    pass


class SuccessScreen(Screen):
    pass


class SearchScreen(Screen):
    pass


class MenuScreen(Screen):
     pass


class GettingStartedScreen(Screen):
    pass


class ProjectApp(MDApp):
    def build(self):
        self.sm = Screenmanager(transition=NoTransition())
        self.sm.add_widget(IntroScreen(name="intro_screen"))
        self.sm.add_widget(GettingStartedScreen(name="getting_started_screen"))
        self.sm.add_widget(SuccessScreen(name="success_screen"))
        self.sm.add_widget(SearchScreen(name='search_screen'))
        self.sm.add_widget(MenuScreen(name="menu_screen"))

        return self.sm

    def change_screen(self,screen,*kwargs):
        self.sm.current = "intro_screen"
        self.sm.current = "getting_started_screen"
        self.sm.current = "success_screen"
        self.sm.current = "search_screen"
        self.sm.current = "menu_screen"
        self.sm.current = screen


ProjectApp().run()

这是我的 .kv 文件

Screenmanager:

<IntroScreen>
    name: "intro_screen"

        MDBottomAppBar:
            MDToolbar:
                icon: "plus"
                type: 'bottom'
                mode: 'center'
                elevation: 8 #base
                left_action_items: [["calendar-text",lambda x: x],["account-group",lambda x: app.change_screen("success_screen")]]
                right_action_items: [["magnify",lambda x: app.change_screen("search_screen")],["menu",lambda x: app.change_screen("menu_screen")]]

<GettingStartedScreen>
    name: "getting_started_screen"

    FloatLayout:
        MDCard:
            orientation: 'vertical'
            padding: 16
            size_hint: None,None
            size: "280dp","360dp"
            pos_hint: {"center_x": .5,"center_y": .6}
            elevation: 8
            orientation: 'vertical'
            radius: 15

<MySwiper@MDSwiperItem> #I created the swiper class here,but its childern are below
    # FitImage:
    #     source:
    #     radius: 18

<SuccessScreen>
    name: "success_screen"

    BoxLayout:
        orientation: "vertical"

        MDBottomAppBar:
            MDToolbar:
                id: success_screen_toolbar
                icon: "magnify"
                on_action_button: app.change_screen("search_screen") 
                type: 'bottom'
                mode: 'center'
                elevation: 8
                left_action_items: [["calendar-text",lambda x: app.change_screen("intro_screen")],lambda x: x]]
                right_action_items: [["magnify",lambda x: app.change_screen("menu_screen")]]


        MDSwiper:
            size_hint_y: None
            height: root.height - success_screen_toolbar.height - dp(40)
            y: root.height - success_screen_toolbar.height - dp(10)

            MySwiper:
                FitImage:
                    source: "C:/Users/HP USER/Downloads/bella_baron.jpg"
                    radius: [20,]

            MySwiper:
                FitImage:
                    source: "C:/Users/HP USER/Downloads/bella_baron.jpg"
                    radius: [20,]
    

<SearchScreen>
    name: 'search_screen'

    BoxLayout:
        orientation: 'vertical'

        MDBottomAppBar:
            MDToolbar:
                icon: "window-close"
                type: "bottom"
                mode: "center"
                left_action_items: [["calendar-text",lambda x: app.change_screen("menu_screen")]]

<MenuScreen>
    name: "menu_screen"

    BoxLayout:
        orientation: "vertical"

        MDBottomAppBar:
            MDToolbar:
                icon: "reload"
                type: "bottom"
                mode: "center"
                left_action_items: [["calendar-text",lambda x: x]]

我之前在我的代码中创建了 MDSwiper 类,并将其子级放在我想要的位置,但我认为这不是问题。

我尝试使用 root.height - id.height(在本例中为 success_screen_toolbar)为 MDSwipe 获得正确的位置,但仍然不正确.. 请问我该如何解决这个问题。非常感谢提前。

jiesite 回答:如何阻止 MDSwiper 重叠 KivyMD 底栏应用程序

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/476.html

大家都在问