from kivy.lang import Builder
from kivy.utils import platform
from kivy.core.window import Window
from kivy.clock import Clock
from kivy.uix.screenmanager import Screen
from kivymd.app import MDApp
if platform == "android":
from kivymd.toast.androidtoast import toast
else:
from kivymd.toast import toast
KV = """
MDScreen:
MDNavigationLayout:
ScreenManager:
id: screenManager
FirstScreen:
name: "firstScreen"
MainScreen:
name: "mainScreen"
<FirstScreen>:
MDBoxLayout:
orientation: "vertical"
MDFlatButton:
text: "submit"
on_release: app.submit()
MDTextField:
id: testfield
<MainScreen>:
MDLabel:
text: "main screen"
"""
class FirstScreen(Screen):
def on_enter(self):
pass
class MainScreen(Screen):
def on_enter(self):
pass
class MainApp(MDApp):
def build(self):
Window.bind(on_keyboard=self.keyboardBindings)
return Builder.load_string(KV)
def keyboardBindings(self, window, key, *largs):
if key == 27:
toast("ESC was pressed")
return True
def submit(self):
testfield_text = self.root.ids.screenManager.get_screen("firstScreen").ids.testfield.text
self.root.ids.screenManager.current = "mainScreen"
app = MainApp()
if __name__ == "__main__":
app.run()
##############################################
The line where the variable testfield_text is set (inside submit function) is mandatory for the bug to happen!