minimum_height在.py内的布局中不起作用(仅在.kv中起作用)?

时间:2019-08-12 17:20:01

标签: kivy

我试图制作一个使用滚动的程序,我尝试了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,并且我不想手工给出确切的高度数字。

非常感谢您

1 个答案:

答案 0 :(得分:1)

您必须使用minimum_heightheight绑定到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

输出

Result