首页 > 解决方案 > minimum_height 在 .py 内的布局中不起作用(仅在 .kv 中起作用)?

问题描述

我试图制作一个使用滚动的程序,我尝试使用 RecycleView

class TestApp(App):
    def build(self):
        rc = RecycleView()
        box = BoxLayout(orientation="vertical", size_hint_y=None)
        b1 = Button(text="1", size_hint_y=None, height=500)
        b2 = Button(text="2", size_hint_y=None, height=500)
        b3 = Button(text="3", size_hint_y=None, height=500)
        box.add_widget(b1)
        box.add_widget(b2)
        box.add_widget(b3)
        box.height = box.minimum_height
        rc.add_widget(box)
        return rc


if __name__ == '__main__':
    TestApp().run()

预计我可以使用滚动条,但 minimum_height 似乎始终为 0,并且我不想手动给出确切的高度数。

太感谢了

标签: kivy

解决方案


您必须按如下方式绑定minimum_heightheightusing setter

box.bind(minimum_height=box.setter('height'))

片段 - py 文件

def build(self):
    rc = RecycleView()
    box = BoxLayout(orientation="vertical", size_hint_y=None)
    ...
    box.bind(minimum_height=box.setter('height'))
    rc.add_widget(box)
    return rc

输出

结果


推荐阅读