Kivy:无法在 Scrollview 中正常工作 scroll_to

Kivy: cant get scroll_to in Scrollview working

尝试使用这样的代码,我可以让 Scrollview 正常工作,但 scroll_to() 函数什么都不做。视图仍然从顶部位置开始。

pixperhour = 60
tagHL = []

dayview = ScrollView(size_hint=(1,1))
test = BoxLayout(size_hint=(1,None), height=24*pixperhour, orientation='vertical')
dayview.add_widget(test)

for i in range(24):
    tagHL.append(Label())
    test.add_widget(tagHL[i])
    tagHL[i].text = "Label "+str(i)
    tagHL[i].color = (1, 1, 1)
    tagHL[i].font_size = 30

dayview.scroll_to(tagHL[12])

我希望滚动视图的视口发生变化,以便标签 tagHL[12] 变得可见。是我做错了还是功能有问题?

为了让它在小部件创建完成后立即发生,您可以将其安排在某个时间(或之前)之后(或之前),因为 Clock.schedule_once(lambda *args : dayview.scroll_to(tagHL[12]),dt) 其中 dt 可以为 -1、0 或任何正值。

附带说明一下,如果您将 tagHL 用作小部件容器,那么最好使用 BoxLayouttestchildren 属性.所以,就像,

    for i in range(24):
        self.lbl = Label(
            text=f"Label {i}",
            color = [1, 1, 1],
            font_size = 30,
        )
        test.add_widget(self.lbl)
    Clock.schedule_once(lambda *x : dayview.scroll_to(test.children[::-1][12]))