首页 > 解决方案 > 在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)

标签: scrollkivyscrollviewbouncedisable

解决方案


嗨 Diego 感谢您的快速回复!

要提供更多详细信息,我有 Windows 8.1 *64 :)

就像你一样,其他人没有这个问题,所以我想也许我尝试卸载 - 安装 2 触摸板驱动程序 -Synaptics 17.0.6.13 -Elantech 11.6.27.201

我也尝试将 screel_wheel_distance 修改为 5 但没有成功

但我发现可能是下面逐步解释的解决方案的开始

  1. 我用两根手指快速移动滚动到顶部。

  2. kivy 按预期向上滚动

  3. 我的手指离开了触摸板

4 kivy 继续往上走,没关系

  1. 在 kivy 下降之前,我用 2 个手指在 X 轴上快速移动,停止向下滚动,所以这个想法可能是在 X 轴上伪造一个滚动?

你知道怎么做吗 ?谢谢


推荐阅读