如果您想更改kvlang中的根屏幕管理器,您可以在任何屏幕中执行以下操作:
Button:
text: 'press me to change the screen of the root manager'
on_press: app.root.current = 'name_of_target_screen'
如果此按钮位于由屏幕管理员管理的屏幕上,您可以执行以下操作:
Button:
text: 'press me to change the current screen'
on_press: root.manager.current = 'name_of_target_screen'
但是当你有这样的嵌套屏幕管理器时:
[Root screen manager]
[screen 1]
[screen 2]
[BoxLayout]
[sidescreen]
[button to change nested screen manager]
[nested screen manager]
[nested screen 1]
[nested screen 2]
我不知道如何从[sidecreen]中更改嵌套屏幕管理器,因为我不知道如何引用它。 有谁知道吗?
最小的工作示例: http://pastebin.com/1i5Ysbu3
答案 0 :(得分:1)
将id
内的嵌套屏幕管理器<ScreenTwo>
设置为某个值,例如id: nested_screenmanager
,然后将其传递给按钮,例如on_press: nested_screenmanager.current = 'SecondNested'
。 ids
列表对规则中的所有小部件都可见。