Как переместиться на другой экран, дав эту команду элементу из выпадающего списка?

Я не понимаю, как это сделать, сама программа говорит, что атрибута root у класса WindowChoose нет

class WindowChoose(Screen):  # начальное окно
def __init__(self, **kwargs):
    super().__init__(**kwargs)
    Clock.schedule_once(self._later_call)

def _later_call(self, dt):
    menu_items = [
        {
        'text': 'Избранное',
        'viewclass': 'OneLineListItem',
        'on_release': lambda x = 'Избранное': self.to_favorite_window(x),
    }
    ]
    self.menu_main = MDDropdownMenu(
        items = menu_items,
        width_mult = 4,
    )
# открытие выпадающего меню на начальном экране (menu)
def callback(self, btn):
    self.menu_main.caller = btn
    self.menu_main.open()

# перемещение на экран с избранным
def to_favorite_window(self, x):
    self.root.current = 'favorite_window'
    self.root.transition.direction = 'right'

Вот еще кусочек кода из самого класса-приложения, где то же самое работает

class ConvertApp(MDApp):
def build(self):
    return Builder.load_string(window_convert_1)

def back(self): # перемещение на начальный экран
    self.root.current = 'choose'  # перемещение на начальный экран
    self.root.transition.direction = 'right'  # перемещение в начальный экран, сдвигая окно вправо

Ответы (1 шт):

Автор решения: Алексей Лень
def to_favorite_window(self, x):
    self.manager.current = 'favorite_window'
    self.manager.transition.direction = 'left'
    self.menu_main.dismiss()

Нужно обратиться к менеджеру экранов и оттуда уже взять все нужное: экраны, анимации переходов и т.д.

def back(self):
    self.root.current = 'choose'  # перемещение на другой экран
    self.root.transition.direction = 'right'  # перемещение в начальный экран, сдвигая окно вправо

А здесь, обращаясь к root, ты обращаешься к менеджеру экранов

→ Ссылка