首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用嵌套的屏幕管理器时,导航抽屉不会隐藏在kivymd中。

使用嵌套的屏幕管理器时,导航抽屉不会隐藏在kivymd中。
EN

Stack Overflow用户
提问于 2021-09-16 04:09:20
回答 1查看 259关注 0票数 0
代码语言:javascript
复制
MDScreen:
MDNavigationLayout:
    ScreenManager:
        MDScreen:
            MDBoxLayout:
                orientation:'vertical'
                MDToolbar:
                    title:"Teacher Section"
                    left_action_items:[["menu",lambda x:nav_drawer.set_state("open")]]
                    right_action_items:[["magnify",lambda x:None]]
                    elevation:5
                MDScreen:
                    ScreenManager:
                        id:nestedsm
                        MDScreen:
                            name:"Screen1"
                            MDLabel:
                                text:"Screen1"
                        MDScreen:
                            name:"Screen2"
                            MDLabel:
                                text:"Screen2"

                Widget:
            MDNavigationDrawer:
                id: nav_drawer
                ContentNavigationDrawer:
                    orientation: 'vertical'
                    padding: "8dp"
                    spacing: "8dp"
                    Image:
                        id: avatar
                        size_hint: (1,1)
                        source: "images/kitten.png"
                    MDLabel:
                        text: "Bhushan Ghevde"
                        font_style: "Subtitle1"
                        size_hint_y: None
                        height: self.texture_size[1]
                    MDLabel:
                        text: "bhushanghevde15@gmail.com"
                        size_hint_y: None
                        font_style: "Caption"
                        height: self.texture_size[1]
                    ScrollView:
                        DrawerList:
                            id: md_list

                            MDList:
                                OneLineIconListItem:
                                    text: "Add Teacher"
                                    on_release:
                                        nestedsm.current = 'Screen1'



                                    IconLeftWidget:
                                        icon: "face-profile"



                                OneLineIconListItem:
                                    text: "Upload"
                                    on_release:
                                        nestedsm.current = 'Screen2'

                                    IconLeftWidget:
                                        icon: "upload"

我正在创建一个用于管理学生细节的拼贴级应用程序。正常的屏幕管理员工作得很好。当我尝试嵌套屏幕管理器时,我面临着问题。问题是,当我试图改变屏幕从导航抽屉,它改变了屏幕,但不自动隐藏,我不得不再次单击上一次隐藏。任何帮助都是非常感谢的。谢谢你在高级..。

我提供了发行的视频

EN

回答 1

Stack Overflow用户

发布于 2021-09-17 21:22:42

欢迎,您可以添加以下内容:

代码语言:javascript
复制
root.ids.nav_drawer.set_state(new_state='toggle', animation=True)

在每个列表项的"on_release“下,如果要添加使用"for循环”的列表,则应该添加如下:

代码语言:javascript
复制
self.root.ids.content_drawer.ids.md_list.add_widget(OneLineIconListItem(icon=icon_name, text="Item number 1", on_release=lamda x:(self.root.ids.nav_drawer.set_state(new_state='toggle', animation=True))))

或者你可以把它实现在基维·朗里面:

代码语言:javascript
复制
Screen:
    #MDNavigationLayout: #unknown class 
    ScreenManager:
        Screen:
            MDBoxLayout:
                orientation:'vertical'
                MDToolbar:
                    title:"Teacher Section"
                    left_action_items:[["menu",lambda x:nav_drawer.set_state("open")]]
                    right_action_items:[["magnify",lambda x:None]]
                    elevation:5
                MDScreen:
                    ScreenManager:
                        id:nestedsm
                        MDScreen:
                            name:"Screen1"
                            MDLabel:
                                text:"Screen1"
                        MDScreen:
                            name:"Screen2"
                            MDLabel:
                                text:"Screen2 jbsidis"

                Widget:
            MDNavigationDrawer:
                id: nav_drawer
                BoxLayout:
                    orientation: 'vertical'
                    padding: "8dp"
                    spacing: "8dp"
                    Image:
                        id: avatar
                        size_hint: (1,1)
                        source: "images/pro.jpg" #"images/kitten.png"
                    MDLabel:
                        text: "Bhushan Ghevde"
                        font_style: "Subtitle1"
                        size_hint_y: None
                        height: self.texture_size[1]
                    MDLabel:
                        text: "bhushanghevde15@gmail.com"
                        size_hint_y: None
                        font_style: "Caption"
                        height: self.texture_size[1]
                    ScrollView:
                        MDList:
                            id: md_list
                            OneLineIconListItem:
                                text: "Add Teacher"
                                on_release:
                                    nestedsm.current = 'Screen1'
                                    root.ids.nav_drawer.set_state(new_state='toggle', animation=True)
                                IconLeftWidget:
                                    icon: "face-profile"

                            OneLineIconListItem:
                                text: "Upload"
                                on_release:
                                    nestedsm.current = 'Screen2'
                                    root.ids.nav_drawer.set_state(new_state='toggle', animation=True)
                                IconLeftWidget:
                                    icon: "upload"

图片:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69202233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档