设置 kivy scrollview effects_cls 属性 的正确方法是什么?
what is the proper way to set kivy scrollview effects_cls property?
我想阻止用户过度滚动。 kivy 文档说 effects_cls 属性 会改变这种行为,但我还没有找到让它起作用的方法。
所以我尝试使用 effect_cls:ScrollEffect,而它应该是 effect_cls:'ScrollEffect'。
必须将其作为字符串传递。
虽然你已经解决了你的问题,但我会为未来的用户提供一个例子。
您可以通过将 effect_cls
设置为任何效果 class 来更改正在使用的效果。如果你想禁用overscroll效果以防止滚动弹跳效果ScrollEffect
解决问题。
使用 kivy 语言的示例:
from kivy.app import App
from kivy.uix.scrollview import ScrollView
from kivy.lang import Builder
Builder.load_string('''
#:import ScrollEffect kivy.effects.scroll.ScrollEffect
#:import Button kivy.uix.button.Button
<RootWidget>
effect_cls: ScrollEffect
GridLayout:
size_hint_y: None
height: self.minimum_height
cols: 1
on_parent:
for i in range(10): self.add_widget(Button(text=str(i), size_hint_y=None))
''')
class RootWidget(ScrollView):
pass
class MainApp(App):
def build(self):
root = RootWidget()
return root
if __name__ == '__main__':
MainApp().run()
输出:
我想阻止用户过度滚动。 kivy 文档说 effects_cls 属性 会改变这种行为,但我还没有找到让它起作用的方法。
所以我尝试使用 effect_cls:ScrollEffect,而它应该是 effect_cls:'ScrollEffect'。 必须将其作为字符串传递。
虽然你已经解决了你的问题,但我会为未来的用户提供一个例子。
您可以通过将 effect_cls
设置为任何效果 class 来更改正在使用的效果。如果你想禁用overscroll效果以防止滚动弹跳效果ScrollEffect
解决问题。
使用 kivy 语言的示例:
from kivy.app import App
from kivy.uix.scrollview import ScrollView
from kivy.lang import Builder
Builder.load_string('''
#:import ScrollEffect kivy.effects.scroll.ScrollEffect
#:import Button kivy.uix.button.Button
<RootWidget>
effect_cls: ScrollEffect
GridLayout:
size_hint_y: None
height: self.minimum_height
cols: 1
on_parent:
for i in range(10): self.add_widget(Button(text=str(i), size_hint_y=None))
''')
class RootWidget(ScrollView):
pass
class MainApp(App):
def build(self):
root = RootWidget()
return root
if __name__ == '__main__':
MainApp().run()
输出: