GridLayout 在 Kivy 中不滚动

GridLayout Not Scrolling in Kivy

请告诉我为什么这不起作用,整个程序运行良好,它使用主程序中的一个函数来获取它的文本,但它不会滚动,因此用户将无法查看整个输出。

<AnswerScreen@Screen>:
    input_textb: input_textb
    ScrollView:
        size_hint: (1, None)
        do_scroll_y: True
        do_scroll_x: False
        bar_width: 4
        GridLayout:
            padding: root.width * 0.02, root.height * 0.02
            cols: 1
            size_hint_y: None
            size_hint_x: 1
            height: self.minimum_height
            Label:
                id: input_textb
                text: ""
                font_size: root.height / 25
                text_size: self.width, None

编辑:

我相信标签的大小没有设置,我同意一开始可能会造成混淆,标签有一个小部件大小(size 作为所有小部件)和一个 texture_size,设置为显示文本的实际大小,kivy 一开始并没有以任何特定方式将这两者联系起来,由你来决定一个如何影响另一个,你在将 text_size 设置为 (width, None),这会强制纹理具有小部件的宽度,但是您错过了交易的另一部分,即您希望小部件与生成的纹理一样高。要使此大小有效,您还必须为 Label 禁用 size_hint_y,因为它位于 GridLayout.

        Label:
            id: input_textb
            text: ""
            font_size: root.height / 25
            text_size: self.width, None
            height: self.texture_size[1]
            size_hint_y: None

你应该一切就绪。

您应该为 ScrollView 的 属性 scroll_y 设置一个介于 0 和 1 之间的值。