如何知道用户是否在Kivy中向上滚动或向下滚动?

时间:2016-12-15 22:59:19

标签: kivy kivy-language

我正在尝试在kivy中创建一个使用ScrollView的应用程序。如果用户向下滚动或向上滚动,我有什么方法可以知道。

1 个答案:

答案 0 :(得分:0)

您可以存储在on_scroll_move中收到的鼠标位置,然后通过比较您现在拥有的值和之前保存的值来确定方向。

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder


Builder.load_string('''
<MyWidget>:
    ScrollView:
        on_scroll_start: root.scroll_pos_y = args[1].pos[1]
        on_scroll_move: root.scroll_direction(args[1].pos[1])

        Label:
            text: 'test'
            size_hint_y: None
            height: 1000
''')

class MyWidget(BoxLayout):
    scroll_pos_y = 0

    def scroll_direction(self, new_scroll_pos_y):
        if new_scroll_pos_y - self.scroll_pos_y < 0:
            print('up')
        else:
            print('down')

        self.scroll_pos_y = new_scroll_pos_y

class MyApp(App):
    def build(self):
        return MyWidget()

if __name__ == '__main__':
    MyApp().run()