You need to enable JavaScript to run this app. 更新Kivy后运行KivyMD项目报Unknown class <NavigationLayout>错误
优惠活动
大模型
产品
解决方案
定价
更多

更新Kivy后运行KivyMD项目报Unknown class <NavigationLayout>错误

报错根因

这个报错和Kivy核心库的版本更新没有直接关系,通常是更新Kivy过程中,连带将KivyMD升级到了1.0.0及以上版本——这个版本开始,KivyMD彻底移除了旧版NavigationLayout组件,组件工厂库里没有注册这个类,才会在KV加载时抛出Unknown class <NavigationLayout>的异常。

可选解决方案

方案1:适配新版KivyMD组件(推荐)

旧版导航结构的嵌套逻辑已经重构,NavigationLayout的功能现在完全由MDNavigationLayout承担,需要做两处核心调整:

  • 把KV结构里的NavigationLayout替换为MDNavigationLayout
  • 按照新组件的交互要求,在MDNavigationLayout内部先声明主内容承载容器(旧版NavigationLayout会自动生成主内容层,新版需要手动添加,不然会出现抽屉无法拖动关闭、主内容被完全遮挡的交互问题)

修正后的完整可运行代码如下:

from kivy.lang import Builder
from kivymd.app import MDApp
from kivy.core.window import Window
Window.size = (600,550)
KV = '''
Screen:
    MDNavigationLayout:
        # 新增主内容承载容器,替换为实际业务需要的布局即可
        ScreenManager:
            Screen:
                # 主页面内容示例
                MDLabel:
                    text: "主内容区"
                    halign: "center"
        # 原有抽屉部分结构保持不变
        MDNavigationDrawer:
            id: draver
            BoxLayout:
                orientation: 'vertical'
                ScrollView:
                    MDList:
                        BoxLayout:
                            id: box 
                        OneLineIconListItem:
                            on_press: app.star()
                            text: 'Избранное'
                            IconLeftWidget:
                                icon: 'star'
                        OneLineIconListItem:
                            text: 'Настройки'
                            IconLeftWidget:
                                icon: 'settings'    
'''
class Test(MDApp):
    def build(self):
        return Builder.load_string(KV)
    
Test().run()

方案2:回退KivyMD版本匹配旧代码

如果不想改动现有业务代码,可以直接将KivyMD降级回最后一个保留NavigationLayout组件的稳定版本,执行安装命令:
pip install kivymd==0.104.3
注意:该版本已停止官方维护,和最新版Kivy、Python环境的兼容性可能存在未知问题,仅作为临时应急方案使用。


内容的提问来源于stack exchange,提问作者Mirai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.06 15:06:04