如何在Kivy中调整单元格高度,解决按钮下方存在空白间隙的问题
问题原因
- 横向
BoxLayout内的3个按钮size_hint_x均设为0.5,总和为1.5超出父布局宽度上限,触发布局计算异常 - 3个按钮设置了
size_hint_y: None但未指定固定高度,外层横向BoxLayout也未设置高度规则,导致该层布局高度异常,挤压了上方TESTER-MAN按钮的可用空间,产生了多余空白区域
修复方案
如果你需要TESTER-MAN按钮占满上方所有剩余空白,可直接修改.kv文件代码如下:
<BoxLayoutE>: orientation: "vertical" Button: text: "TESTER-MAN" BoxLayout: orientation: "horizontal" size_hint_y: None height: 50dp Button: text: "1" color: 0, 0, 1, 1 size_hint_x: 0.333 Button: text: "2" color: 0, 0, 1, 1 size_hint_x: 0.333 Button: text: "3" color: 0, 0, 1, 1 size_hint_x: 0.334 Button: text: "A" color: 0, 0, 1, 1 size_hint_y: None height: 50dp Button: text: "B" color: 0, 0, 1, 1 size_hint_y: None height: 50dp Button: text: "C" color: 0, 0, 1, 1 size_hint_y: None height: 50dp
修改说明:
- 调整3个功能按钮的宽度占比,总和为1适配横向布局宽度
- 给下方所有非拉伸区域的布局、按钮设置固定高度,
TESTER-MAN按钮默认size_hint_y=1会自动填充满所有剩余空白区域,不会再出现间隙
如果你希望所有按钮按比例分配页面高度,仅需要删除3个功能按钮的size_hint_y: None配置,同时调整宽度占比为0.333即可。
内容的提问来源于stack exchange,提问作者Abuzz
相关产品推荐
相关产品推荐

