Отключить эффект подпрыгивающей прокрутки в kivy

11.1

Кто-нибудь знает, как отключить эффект прокрутки отскока при подъеме в режиме прокрутки? Я сделал прокрутку со 100 кнопками для тестирования, и когда я дохожу до вершины, прокручивая пальцем, и я прекращаю прокрутку, kivy заставляет меня подпрыгивать к 4-й кнопке, я бы хотел, чтобы он остановился на первой кнопке. Ты знаешь как ? Спасибо

Вот мой код:

import kivy
kivy.require('1.11.1')
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.core.window import Window
from kivy.app import runTouchApp
from kivy.app import App
from kivy.effects.scroll import ScrollEffect
from kivy.effects.dampedscroll import DampedScrollEffect
from kivy.properties import NumericProperty

layout = GridLayout(cols=1, spacing=10, size_hint_y=None)
layout.bind(minimum_height=layout.setter('height'))

for i in range(100):

    btn = Button(text=str(i), size_hint_y= None, height=40)
    layout.add_widget(btn)

root = ScrollView(size_hint=(1, None),\
size=(Window.width, Window.height),\
bar_width = 10, bar_color= (0,1,0,1),\
scroll_type = ['bars', 'content'],\
effect_cls = 'ScrollEffect'\
)

root.add_widget(layout)

print(root.effect_y)
runTouchApp(root)

person xavier cattelain    schedule 25.06.2020    source источник
comment
Я тестировал ваш код на своей машине, Windows 10, python2.7 и kivy = 1.11.1, и я не получаю упомянутого вами эффекта подпрыгивания, я прокручивал полностью вниз и обратно вверх, и он не bounce на любом конце, он остается на первой кнопке при прокрутке вверх, без отскока, и остается на последней кнопке при прокрутке вниз, без отскока.   -  person Diego Suarez    schedule 26.06.2020
comment
Привет, Диего! Спасибо вам за ваш быстрый ответ !   -  person xavier cattelain    schedule 26.06.2020


Ответы (2)


Привет, Диего. Спасибо за быстрый ответ!

Для подробностей у меня Windows 8.1 * 64 :)

Как и у вас, у других людей не было этой проблемы, поэтому я подумал, может быть, я попытаюсь удалить-установить 2 драйвера сенсорной панели -Synaptics 17.0.6.13 -Elantech 11.6.27.201

Я также безуспешно пытался изменить screel_wheel_distance на 5

Но я нашел, возможно, начало решения, объясненного ниже шаг за шагом.

  1. Я прокручиваю, чтобы достичь вершины быстрым движением двумя пальцами.

  2. Киви прокручивается, как и ожидалось

  3. Мои пальцы выходят из тачпада

4 киви продолжают расти и все в порядке

  1. Перед тем, как kivy опустится, я делаю быстрое движение по оси X двумя пальцами, он останавливает прокрутку вниз, так что, возможно, идея будет в том, чтобы имитировать прокрутку по оси X?

Вы знаете, как это сделать? Спасибо

person xavier cattelain    schedule 26.06.2020

Установите для size_hint_y макета значение больше, чем то, на котором он покрывает все ваши элементы в макете (например, 3), см .: Проблема с Kivy при попытке прокрутить вертикальный ScrollView вниз с горизонтальным ScrollView внутри

root = ScrollView(size_hint=(3, None)
person n4321d    schedule 06.04.2021