2
我有一个屏幕,其中我有可滚动boxlayout。它工作正常,我可以通过标签,文本输入框和按钮滚动屏幕滚动视图和触摸事件不能在基夫一起工作
#kvfile
<FirstScreen>:
ScrollView:
BoxLayout:
orientation:"vertical"
size_hint_y: None
height: self.minimum_height
#here some scrollable labels, text inputs, and buttons
#python file
class FirstScreen(Screen):
'''
initial = 0
def on_touch_down(self, touch):
self.initial = touch.x
def on_touch_up(self, touch):
if touch.x > self.initial:
# do something
elif touch.x < self.initial:
# do other thing
else:
# what happens if there is no move
'''
pass
里面可是当我增加了一个触摸事件检测左,右轻扫滚动被禁用。现在我可以左键,右键滑动但不滚动。如何启用滚动以及滑动?
目前的解决方案只能部分工作。我正在开发这个在我的电脑中,它看起来像滚动只有当我们使用鼠标的滚动按钮,我们不能通过触摸滚动。 – Eka
可能是因为当通过触摸滚动时,您仍然无意中更改了“x”坐标,然后条件就会触发并终止事件。您需要一些方法来区分用户*想要*刷卡或滚动,然后“返回True”或通过事件。 (或者,如果他们不以某种方式冲突,你总是可以传递事件)。例如,你可以为滑动设置一些最小距离,如果abs(touch.x - self.initial)> X' ... – KGS
这是我用来左右滚动的条件'p =(touch.x- self.initial)/ self.initial',我已经添加了一个阈值来检测左右滑动。我认为scrollview已启用,但我的触摸事件是滚动视图的触摸。我需要一些方法来启用滚动视图的触摸上下滑动。我不知道该怎么做。我可以使用这个'p =(touch.y-self.initial)/ self.initial'来检测向上/向下滑动,但是如何启用滚动视图触摸 – Eka