2024-04-25 14:02:16 发布
网友
我想在我的android应用程序中创建一个导航栏,我在google上搜索了很多。我得到了解决方案,但它是基于kv语言的。我需要不使用kv语言来创建。你知道吗
我不喜欢奇维语。我只喜欢Python
欢迎各种意见
非常感谢
带有KivyMD导航抽屉的应用程序(带有kv代码):
from kivy.lang import Builder from kivymd.app import MDApp from kivymd.uix.navigationdrawer import NavigationLayout # Do not remove root_kv = """ <ContentNavigationDrawer@MDNavigationDrawer>: drawer_logo: "drawer_logo.png" NavigationDrawerSubheader: text: "Menu:" NavigationDrawerIconButton: icon: "access-point" text: "First" NavigationDrawerIconButton: icon: "account" text: "Second" NavigationLayout: id: nav_layout ContentNavigationDrawer: id: nav_drawer BoxLayout: orientation: "vertical" MDToolbar: id: toolbar title: "Toolbar title" md_bg_color: app.theme_cls.primary_color background_palette: "Primary" background_hue: "500" elevation: 10 left_action_items: [["menu", lambda x: app.root.toggle_nav_drawer()]] BoxLayout: orientation: "vertical" padding: dp(16) MDRaisedButton: text: "Click me!" Widget: """ class MainApp(MDApp): def build(self): self.root = Builder.load_string(root_kv) if __name__ == "__main__": MainApp().run()
同一个应用程序没有kv代码(也没有绑定到应用程序主题颜色,没有ID,也没有其他有用的东西)。(仅适用于主分支的KivyMD,请参见how to install):
from kivy.metrics import dp from kivy.uix.boxlayout import BoxLayout from kivy.uix.widget import Widget from kivymd.app import MDApp from kivymd.uix.navigationdrawer import ( NavigationLayout, MDNavigationDrawer, NavigationDrawerSubheader, NavigationDrawerIconButton, ) from kivymd.uix.toolbar import MDToolbar from kivymd.uix.button import MDRaisedButton class MainApp(MDApp): def build(self): nav_layout = NavigationLayout() nav_drawer = MDNavigationDrawer(drawer_logo="drawer_logo.png") nav_drawer.add_widget(NavigationDrawerSubheader(text="Menu:")) nav_drawer.add_widget( NavigationDrawerIconButton(icon="access-point", text="First") ) nav_drawer.add_widget(NavigationDrawerIconButton(icon="account", text="Second")) box_layout = BoxLayout(orientation="vertical") toolbar = MDToolbar( title="Toolbar title", md_bg_color=self.theme_cls.primary_color, background_palette="Primary", background_hue="500", elevation=10, ) toolbar.left_action_items = [["menu", lambda x: self.root.toggle_nav_drawer()]] box_layout.add_widget(toolbar) box_layout_content = BoxLayout(orientation="vertical", padding=dp(16)) box_layout_content.add_widget(MDRaisedButton(text="Click me!")) box_layout_content.add_widget(Widget()) box_layout.add_widget(box_layout_content) nav_layout.add_widget(nav_drawer) nav_layout.add_widget(box_layout) self.root = nav_layout if __name__ == "__main__": MainApp().run()
我觉得用kv语言编写的应用程序代码可读性更好,看起来也不错。如果你不使用kv语言编写所有的应用程序代码,它看起来会很糟糕,很难编辑,而且以后会有很多bug。因此,我建议你学习kv语言并用它编写程序。你知道吗
带有KivyMD导航抽屉的应用程序(带有kv代码):
同一个应用程序没有kv代码(也没有绑定到应用程序主题颜色,没有ID,也没有其他有用的东西)。(仅适用于主分支的KivyMD,请参见how to install):
我觉得用kv语言编写的应用程序代码可读性更好,看起来也不错。如果你不使用kv语言编写所有的应用程序代码,它看起来会很糟糕,很难编辑,而且以后会有很多bug。因此,我建议你学习kv语言并用它编写程序。你知道吗
相关问题 更多 >
编程相关推荐