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
相关产品推荐
相关产品推荐

