You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kivy屏幕切换时首次过渡动画无法关闭问题求助

这不是Kivy的特性,是你的实现顺序有问题。

原因在于你是先切换屏幕,再设置过渡动画为NoTransition——第一次切换时,默认的过渡动画已经触发了,之后的切换才会生效新的过渡设置。

修复方案

方案1:全局禁用过渡(推荐)

直接在WindowManager的定义中设置过渡类型,这样所有屏幕切换都会默认使用NoTransition,无需在每个按钮里重复设置:

修改kv文件中的WindowManager部分:

#: import NoTransition kivy.uix.screenmanager.NoTransition
WindowManager:
    transition: NoTransition()
    LoginWindow:
    CreateWindow:

同时可以删除两个按钮中设置root.manager.transition = NoTransition()的代码,因为已经全局配置了。

方案2:调整按钮事件的执行顺序

如果需要针对特定切换禁用过渡,要先设置过渡类型,再切换屏幕:

修改LoginWindow中"Create Account"按钮的on_release:

on_release:
    root.manager.transition = NoTransition()
    app.root.current = "Create"

同样,CreateWindow中"Go Back"按钮也要调整顺序:

on_release:
    root.manager.transition = NoTransition()
    app.root.current = "login"

另外,CreateWindow按钮里的transition: NoTransition()是多余的,因为Button控件没有这个属性,可以删掉。

内容的提问来源于stack exchange,提问作者asp3ct

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:27:43