Кто поймёт, по какой причине выдаёт ошибку при нажатии на TwoLineAvatarIconListItem? Python KivyMD
Текст ошибки:
File "C:\Users\User\PycharmProjects\messendger\messenger on android and ios (kivy)\main_mobile_v0.5_2.py", line 120, in switch_screen
self.root.ids.scroll_view.ids.screen_manager.current = {
File "kivy\properties.pyx", line 964, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'. Did you mean: '__setattr__'?
Код:
from kivymd.app import MDApp
from kivymd.uix.label import MDLabel
from kivymd.uix.navigationdrawer import (
MDNavigationLayout,
MDNavigationDrawer,
MDNavigationDrawerMenu,
MDNavigationDrawerHeader,
MDNavigationDrawerDivider,
MDNavigationDrawerItem,
)
from kivymd.uix.screen import MDScreen
from kivymd.uix.screenmanager import MDScreenManager
from kivymd.uix.toolbar import MDTopAppBar
from kivymd.uix.scrollview import MDScrollView
from kivymd.uix.list import MDList, OneLineAvatarIconListItem, ImageLeftWidget, TwoLineAvatarIconListItem, \
OneLineListItem
class BaseNavigationDrawerItem(MDNavigationDrawerItem):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.radius = 24
self.text_color = "#4a4939"
self.icon_color = "#4a4939"
self.focus_color = "#e7e4c0"
class DrawerLabelItem(BaseNavigationDrawerItem):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.focus_behavior = False
self._no_ripple_effect = True
self.selected_color = "#4a4939"
class DrawerClickableItem(BaseNavigationDrawerItem):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.ripple_color = "#c5bdd2"
self.selected_color = "#0c6c4d"
class SOTO_Messendger(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
return(
MDScreen(
MDScrollView(
MDScreenManager(
MDScreen(
MDList(
TwoLineAvatarIconListItem(
ImageLeftWidget(
source="img/logo.png"
),
text="Screen 1",
secondary_text="Твой маршрут на сегодня:",
on_release=self.switch_screen,
),
),
name="scr 1",
),
MDScreen(
MDLabel(
text="Screen 2",
halign="center",
),
name="scr 2",
),
id="scroll_view",
)
),
MDNavigationLayout(
MDScreenManager(
MDScreen(
MDTopAppBar(
title="СОТО Мессенджер",
elevation=4,
pos_hint={"top": 1},
md_bg_color="#e7e4c0",
specific_text_color="#4a4939",
left_action_items=[
['menu', lambda x: self.nav_drawer_open()]
],
)
)
),
MDNavigationDrawer(
MDNavigationDrawerMenu(
MDNavigationDrawerHeader(
#source="logo.jpg",
title="Иванов Иван Иванович",
text="Таб №" + "9999",
spacing="4dp",
padding=("12dp", 0, 0, "56dp"),
),
DrawerClickableItem(
icon="send",
text="Входящие",
),
DrawerClickableItem(
icon="send",
text="Настройки",
),
MDNavigationDrawerDivider(),
),
id="nav_drawer",
radius=(0, 16, 16, 0),
)
),
)
)
def nav_drawer_open(self, *args):
nav_drawer = self.root.children[0].ids.nav_drawer
nav_drawer.set_state("open")
def switch_screen(self, instance_list_item: OneLineListItem):
self.root.ids.scroll_view.ids.screen_manager.current = {
"Screen 1": "scr 2", "Screen 2": "scr 1"
}[instance_list_item.text]
self.root.children[0].ids.nav_drawer.set_state("close")
SOTO_Messendger().run()