2
私はスクロール可能なboxlayoutを持っている画面があります。これは、正常に動作し、私は、画面ScrollViewとタッチイベントが一緒にキビーで動作しない
#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'座標を変更していて、条件がキックインしてイベントを終了させるためである可能性があります。ユーザーが*スワイプまたはスクロールしたいときを区別するために何らかの方法が必要です。そして、 'return True'またはイベントを渡します。 (何とか矛盾しない場合は、いつでもイベントを通過することができます)。たとえば、スワイプの最小距離を 'if abs(touch.x - self.initial)> X' ...と設定することができます。 – KGS
これは、スクロールに使用する条件です。' p =(touch.x- self.initial)/ self.initial'とし、左右のスワイプを検出するためのしきい値を追加しました。私はscrollviewが有効になっていると思うが、私のタッチイベントはscrollviewのタッチを上回っている。上下にスワイプしたときにスクロールビューのタッチを有効にする方法が必要です。私はそれをどうやって行うのか分かりません。私はこの 'p =(touch.y-self.initial)/ self.initial'を使ってスワイプを検出することができますが、スクロールタッチを有効にする方法は – Eka