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.
我有一个基本的应用程序,我需要将我的 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.