Kivy:将 ScrollView 移动到某个 y

Kivy: move the ScrollView to a certain y

我有一个基本的应用程序,我需要将我的 ScrollView 移动到某个 y。 我使用 scroll_to() 但是这次,我需要移动到某个位置来统计多个信息。 (我没在the doc里找到)

from kivy.lang import Builder
from kivymd.app import MDApp

KV = '''
BoxLayout:
    ScrollView:
        BoxLayout:
            orientation: "vertical"
            size_hint_y: None
            height: "900dp"
            MDLabel:
                text: "yolo"
                size_hint_y: None
                height: "300dp"
            MDLabel:
                text: "yulu"
            MDLabel:
                text: "yulu"
            MDLabel:
                text: "yulu"
            MDLabel:
                text: "yulu"
            MDLabel:
                text: "yulu"
            MDLabel:
                text: "yulu"
'''

class App(MDApp):
    def build(self):
        self.box = Builder.load_string(KV)
        return self.box

App().run()

看来您需要 scroll_y 参数。这是一个百分比值,表示 'down' 滚动的距离。

来自文档:

a Y scrolling value, between 0 and 1. If 0, the content’s bottom side will touch the bottom side of the ScrollView. If 1, the content’s top side will touch the top side.

https://kivy.org/doc/stable/api-kivy.uix.scrollview.html#kivy.uix.scrollview.ScrollView.scroll_y

因此,如果您设置 ScrollView.scroll_y = 0.5,滚动框将向下滚动一半。

如果您知道滚动距离(以像素为单位),您总是可以将以上内容与 convert_distance_to_scroll(dx, dy) 结合使用,(再次来自文档):

Converts a distance in pixels to a scroll distance, depending on the content size and the scrollview size.

https://kivy.org/doc/stable/api-kivy.uix.scrollview.html#kivy.uix.scrollview.ScrollView.convert_distance_to_scroll