Kivy:将 ScrollView 移动到某个 y
Posted
技术标签:
【中文标题】Kivy:将 ScrollView 移动到某个 y【英文标题】:Kivy: move the ScrollView to a certain y 【发布时间】:2021-06-25 12:14:56 【问题描述】:我有一个基本应用程序,我需要将我的 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()
【问题讨论】:
【参考方案1】:看起来您需要scroll_y
参数。这是一个百分比值,表示滚动“向下”的距离。
来自文档:
一个 Y 滚动值,介于 0 和 1 之间。如果为 0,则为内容的底部 将触摸 ScrollView 的底部。如果为 1,则内容的顶部 侧面将接触顶部。
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)
结合起来,(再次来自文档):
将像素距离转换为滚动距离,具体取决于 内容大小和滚动视图大小。
https://kivy.org/doc/stable/api-kivy.uix.scrollview.html#kivy.uix.scrollview.ScrollView.convert_distance_to_scroll
【讨论】:
我一直在寻找绝对 y,但我找到了widget.y / layout_of_the_scroll_view.height
,而且我有相对高度,谢谢您的帮助! :)以上是关于Kivy:将 ScrollView 移动到某个 y的主要内容,如果未能解决你的问题,请参考以下文章
Kivy - 如何在 ModalView 内向 ScrollView 添加多个按钮?