Python 带GridLayout的ScrollView与带BoxLayout的ScrollView,Kivy

Python 带GridLayout的ScrollView与带BoxLayout的ScrollView,Kivy,python,kivy,Python,Kivy,所以,我正在使用ScrollView。ScrollView需要一个恒定的最小高度,该高度不会收缩到窗口或元素的大小。为此,我们将其子级的最小_高度(ScrollView包含的布局)设置为布局本身的总高度。我想这是: 使其不受大小调整的影响,并且 表示高度/尺寸 变量不是万能的,它被外部布局覆盖 尺寸/窗口 那很好。然而,我的问题是,网格布局和盒子布局之间有什么区别?来自SO的恶劣表示: “BoxLayout的设计目的是让它的子对象自己填充。一个更好的动态调整布局是GridLayout,它有一个最

所以,我正在使用ScrollView。ScrollView需要一个恒定的最小高度,该高度不会收缩到窗口或元素的大小。为此,我们将其子级的最小_高度(ScrollView包含的布局)设置为布局本身的总高度。我想这是:

  • 使其不受大小调整的影响,并且
  • 表示高度/尺寸 变量不是万能的,它被外部布局覆盖 尺寸/窗口
  • 那很好。然而,我的问题是,网格布局和盒子布局之间有什么区别?来自SO的恶劣表示:

    “BoxLayout的设计目的是让它的子对象自己填充。一个更好的动态调整布局是GridLayout,它有一个最小的\u高度,您可以绑定以自动调整大小。”

    (来源:)

    也许措辞有些问题,但是:

  • GridLayouts也充满了孩子(哈哈)
  • GridLayout和BoxLayout文档均显示最小高度的只读属性 根据我的假设,如果最小高度足够高,BoxLayout应该像GridLayout一样填充自己。但是,最小_高度不会像GridLayout那样更改,因此这意味着:

  • GridLayout的最小_高度为“只读”是一个“谎言”(哈,它是——我们更改了它)
  • “最小高度”属性可能仍然可用,但对BoxLayout的访问方式不同
  • BoxLayout没有最小的_高度,始终受其外部容器的约束
  • 但是,如果我们接受#3,那么观察结果是:

  • 我的ScrollView嵌套在整个屏幕的BoxLayout根目录中(~750dp高)
  • 当我的ScrollView设置在200-800之间时:
  • ScrollView保存的BoxLayout子项没有更改。我的ScrollView显示了同样的两个可展开的按钮(大概所有其他97个按钮都直接堆叠在其后面),高度约为250dp
  • 所以,即使BoxLayout没有最小的_高度,也会有其他的事情发生

    但我担心这会让我们偏离正轨。因此,基本上,我想知道是什么阻止了BoxLayout具有最小高度属性——我们可以像GridLayout那样设置它。