In order to change between screens you just need to use the current
property. Basically you have to tell the ScreenManager which is the current screen but first you have to put a a name on them. Here you have an example:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
Builder.load_string("""
<Phone>:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'top'
ScreenManager:
size_hint: 1, .9
id: _screen_manager
Screen:
name: 'screen1'
Label:
text: 'The first screen'
Screen:
name: 'screen2'
Label:
text: 'The second screen'
AnchorLayout:
anchor_x: 'center'
anchor_y: 'bottom'
BoxLayout:
orientation: 'horizontal'
size_hint: 1, .1
Button:
text: 'Go to Screen 1'
on_press: _screen_manager.current = 'screen1'
Button:
text: 'Go to Screen 2'
on_press: _screen_manager.current = 'screen2'""")
class Phone(FloatLayout):
pass
class TestApp(App):
def build(self):
return Phone()
if __name__ == '__main__':
TestApp().run()
The line
on_press: _screen_manager.current = 'screen1'
will tell the screen manager to change the screen named 'screen1' with this other line
name: 'screen1'