了解KivyMD屏幕布局

了解KivyMD屏幕布局,kivy,kivy-language,kivymd,Kivy,Kivy Language,Kivymd,我想了解如何使用带有ScrollView和底部导航的GridLayout布局KivyMD屏幕。我的代码不起作用,因为GridLayout显示在BottonNavigation上,然后就看不见了。设置此布局的正确方法是什么?一般来说,KivyMD屏幕布局是否有拇指规则?谢谢 <MyScreen>: name: 'myscreen' ScrollView: orientation:'vertical' MDGridLayout: cols: 3

我想了解如何使用带有ScrollView和底部导航的GridLayout布局KivyMD屏幕。我的代码不起作用,因为GridLayout显示在BottonNavigation上,然后就看不见了。设置此布局的正确方法是什么?一般来说,KivyMD屏幕布局是否有拇指规则?谢谢

<MyScreen>:
name: 'myscreen'

ScrollView:
    orientation:'vertical'

    MDGridLayout:
        cols: 3
        adaptive_height: True
        padding: dp(4), dp(4)
        spacing: dp(4)

        etc.

BoxLayout:
    orientation:'vertical'

    MDBottomNavigation:
        panel_color: .2, .2, .2, 1

        MDBottomNavigationItem:
            name: 'left'
            text: 'Left'
            icon: 'chevron-left'

            MDLabel:
                text: 'Left'
                halign: 'center'
                font_style: 'Icon'

        MDBottomNavigationItem:
            name: 'right'
            text: 'Right'
            icon: 'chevron-right'

            MDLabel:
                text: 'Right'
                halign: 'center'
                font_style: 'Icon'
        etc.
:
名称:“我的屏幕”
滚动视图:
方向:'垂直'
MDGridLayout:
科尔斯:3
自适应高度:真
填充:dp(4),dp(4)
间距:dp(4)
等
盒子布局:
方向:'垂直'
MDB导航:
面板颜色:.2、.2、.2、1
MDBottomNavigationItem:
姓名:'左'
文本:“左”
图标:“左V形”
MDLabel:
文本:“左”
哈利恩:“中心”
字体样式:“图标”
MDBottomNavigationItem:
姓名:'对'
文字:“右”
图标:“V形右”
MDLabel:
文字:“右”
哈利恩:“中心”
字体样式:“图标”
等

布局类监视其子级的大小,并重新计算布局,如果大小发生变化,则重新绘制。所以,我相信如果你的图片大小没有改变,那么只有那个图片会被更新


kivy Builder根据加载的kv文件维护一组规则,因此这些规则是否来自单独的文件并不重要。我建议根据可维护性、可读性和逻辑分区等因素构建kv文件

任何小部件的默认
size\u hint
都是
(1,1)
,因此,您需要调整
MyScreen
中每个小部件的
size\u hint/size
。否则,它们只会相互牵制,现在就行了。多谢各位。一些相关问题,但如果需要新的SO问题,请告诉我:A。以GridLayout为例,当每个单元格的项目内容(如图像)发生变化时,是重新绘制整个屏幕还是仅绘制项目?B我的应用程序中有3个屏幕。最佳做法是为每个屏幕创建单独的kv文件还是仅为一个屏幕创建单独的kv文件?对于
a
布局
类监视其子屏幕的大小,并重新计算布局,如果大小发生变化,则重新绘制。所以,我相信如果你的图片大小没有改变,那么只有那个图片会被更新。对于
b
:kivy
Builder
根据加载的
kv
文件维护一组规则,因此这些规则是否来自单独的文件并不重要。我建议您根据可维护性、可读性和逻辑分区等因素构建
kv
文件。再次感谢。你能给我一个答案让我接受吗?