MDBottomNavigation选项卡的位置不正确

时间:2020-08-31 17:08:06

标签: kivy-language bottomnavigationview kivymd

我目前正在开发具有多个屏幕的应用程序(为此我使用了ScreenManager)。但是,有一个名为TravelManagerWindow的屏幕,其中也有一个MDBottomNavigation小部件,一个MDBottomNavigationItem(或屏幕)将用于旅行费用请求,另一个用于提供旅行后此类费用的证据。

问题在于,一旦我输入TravelManagerWindow,MDBottomNavigation小部件的选项卡将被错误地定位。不过,在我手动调整整个应用程序窗口的大小之后,选项卡的位置会更改为所需的位置。有没有办法确保从一开始就正确显示选项卡?我一直在寻找各种解决方案的日子,但仍然无法解决我的问题。

相关代码如下:

<TravelManagerWindow>:
    name:'travelManager'
    on_enter: root.set_expansion_panel()
    on_enter: root.set_expansion_panel_2()


    BoxLayout:
        orientation: 'vertical'

        MDBottomNavigation:
            id: bottom_Navigation

            MDBottomNavigationItem:
                text: 'Solicitud de Gastos'
                name: 'solicitudes'
                halign:'center'
                icon: 'plus'
    
            MDBottomNavigationItem:
                text: 'Comprobacion de Gastos'
                name: 'comprobacion'
                halign:'center'
                icon: 'format-list-checks'

进入屏幕时,选项卡的原始位置是: Original position before resizing

调整大小后的期望位置是: MDBottomNavigations tabs after resizing (desired position)

非常感谢,非常感谢您提出任何建议。

1 个答案:

答案 0 :(得分:1)

我想通了。我只是在进入 MDBottomNavigation 所在的屏幕之前调整了窗口大小:

from kivy.core.window import Window

def on_pre_enter(self, *args):
    Window.size = (Window.width + 1, Window.height + 1)
    Window.size = (Window.width - 1, Window.height - 1)