我有两个屏幕。当我按下'下一个屏幕'按钮它将转到第二个屏幕,转换应该是SlideTransition(左),当我按下'返回'按钮它应该返回到第一个屏幕,转换应该是SlideTransition(右)。
怎么做?它只在我的代码中使用了1个转换
这是我的代码py / kv代码:
class 1stScreen(Screen):
...some methods...
class 2ndScreen(Screen):
...some methods...
class MyScreenManager(ScreenManager):
pass
root_widget = Builder.load_string('''
#:import SlideTransition kivy.uix.screenmanager.SlideTransition
MyScreenManager:
transition: SlideTransition(direction='left')
1stScreen:
transition: SlideTransition(direction='right') #<-- Im getting error with this
2ndScreen:
<1stScreen>:
name: '1stScreen'
...some widgets...
Button:
text: 'next screen'
on_release: app.root.current = '2ndScreen'
<2ndScreen>:
name: '2ndScreen'
...some widgets...
Button:
text: 'back'
on_release: app.root.current = '1stScreen'
''')
class Main(App):
def build(self):
return root_widget
if __name__ == "__main__":
Main().run()
答案 0 :(得分:5)
将转换置于on_release
个事件中。
Button:
text: 'next screen'
on_release:
app.root.transition = SlideTransition(direction='right')
app.root.current = '2ndScreen'
...
答案 1 :(得分:0)
对于任何来这里寻找答案的人,使用从一个屏幕到另一个屏幕的完全不同的过渡,这对我有用:
#: import FadeTransition kivy.uix.screenmanager.FadeTransition
#: import SlideTransition kivy.uix.screenmanager.SlideTransition
app.root.transition = FadeTransition(duration=1.2)
与您的触发事件。我尝试过
on_release
我的登录和注销按钮,但是发现它出现故障,并且与我想要的行为不完全相同。我最后为添加一行
on_press
以便创建所需的过渡而不会出现意外行为。我将更改屏幕的实际行保留在
下on_release
行。