首页 > 解决方案 > Kivy MDGridLayout 固定列大小

问题描述

ScrollView:
        MDGridLayout:
            id: grid_module_card
            cols: 3
            padding: 30, 30
            spacing: 30, 30
            size_hint_y: None
            height: self.minimum_height
            adaptive_height: True
            row_default_height: 500
            md_bg_color: 0.708, 0.281, 0.097, 1

我使用 .add_widget 将自定义单元格添加到布局中。当 GridLayout 中只有一个单元格时,该单元格占据整行,但我只希望它位于第一列,占据屏幕的 1/3。我怎样才能解决这个问题?

标签: pythonkivy

解决方案


您可以col_default_width为每列设置所需的宽度:

col_default_width: self.width/3

或者,也许更准确地说:

col_default_width: (self.width - self.padding[0] - self.padding[2] - self.cols * self.spacing[0])/self.cols

cols_minimum使用和col_force_default查看GridLayout 文档还有其他可能性。


推荐阅读