python-3.x 如何创建与导航抽屉一起使用的导航导轨?

yuvru6vn  于 2023-07-01  发布在  Python
关注(0)|答案(2)|浏览(98)

我的问题是:我在kivymd学习材料设计。看到material design website,我注意到它使用了一个导航轨道,其中一些按钮添加了一个导航抽屉。图像:

所以我尝试在我的python程序中用kivymd创建它,但我的问题是,当我移动悬停时,导航抽屉会站在导航栏上方,像这样:

我试着使用pos,填充和间距,但不改变位置。pos_hint可以工作,但是导航栏有一个绝对的大小,所以没有解决。我恢复的kv语言:

MDNavigationRail:
    id: nav_rail
    selected_color_background: app.theme_cls.primary_color
    ripple_color_item: app.theme_cls.primary_color
    font_name: app.COMFORTAA
    on_item_release: root._item_clicked(*args)
    MDNavigationRailContent:

MDNavigationLayout:
    MDScreenManager:

MDNavigationDrawer:
    id: nav_drawer
    radius: 0, 16, 16, 0
    elevation: 0.5
    font_size: '16dp'
    font_name: app.COMFORTAA
    padding_x: '100dp'
    width: "240dp"
0s7z1bwu

0s7z1bwu1#

问得好!我也在想同样的事情。如果我弄明白了,我会把它贴在这里。

91zkwejq

91zkwejq2#

我得到了它!在大量的工作和尝试之前,我得到了一种使用pos_hint的方法:

<MyScreen>:
    MDFloatLayout:
        MDBoxLayout:
            size: root.size
            pos: root.pos
            MDNavigationRail:
                id: nav_rail
                [...]
            MDBoxLayout:
                MDScreenManager:
                    [...]
        MDNavigationDrawer:
            id: nav_drawer
            pos_hint: {'x': nav_rail.width / root.width}
            [...]

首先我创建了一个MDFloatLayout,给MDNavigationDrawer可以有一个float的位置。
pos_hint是MDNavigationRail的宽度除以根的宽度,它将给予相对于根宽度的轨道末端百分比位置。
Peraps这些我需要把ScreenManager和铁路内框布局,像从文档的指导,并给予根大小和位置从MDBoxLayout内MDFloatLayout.
谢谢大家!

相关问题