与KivyMD工具栏等效的ActionOverflowActionBar

问题描述

如何获取KivyMD Toolbar以使其水平堆叠的菜单自动溢出到dots-vertical菜单中,这与Kivy ActionBar的ActionOverflow子菜单中的本机处理类似。

KivyMD是一个python模块,允许开发人员将Google Material Design用户界面添加到本地kivy应用程序中。

没有KivyMD,普通的Kivy框架具有内置的ActionBar。此ActionBar的设计是,当应用程序的窗口水平缩小时,工具栏上的图标按钮将自动添加到最右边的带有垂直3点的子菜单中。该UX在Android中非常常见,以至于用户可以直观地了解如何使用它。

以下是所需功能的示例(如上所述):

Animated Gif showing what should happen when the window width is resized

如上图所示,如果窗口足够大以显示工具栏中的所有项目,则最右边的溢出子菜单将被隐藏。

以下是用于产生上述示例的相关.kv设计语言(其中<MainWindow>也是BoxLayout):

<MainWindow>:
        orientation: 'vertical'
        size_hint: ( 1,0.95 )
        pos_hint: {'top': 1}

        ActionBar:
                ActionView:
                        ActionPrevIoUs:
                                with_prevIoUs: False
                                app_icon: 'images/menu.png'
                                title: 'BusKill'
                        ActionButton:
                                text: 'A'
                        ActionButton:
                                text: 'B'
                        ActionButton:
                                text: 'C'
                        ActionButton:
                                text: 'D'

        BoxLayout:

                orientation: 'vertical'
                size_hint: ( 0.9,1 )
                pos_hint: {'center_x': 0.5,'top': 1}
                spacing: 10

                Label:
                        id: status 
                        text: "BusKill is currently disarmed."
                        size_hint: (1,2)
                        halign: 'center'
                        valign: 'middle'

                Button:
                        id: toggle_btn
                        text: "Arm"
                        size_hint: (1,1)
                        halign: 'center'
                        valign: 'middle'
                        on_release: root.toggleBusKill()

如何编写一个简单的Python GUI应用程序,该应用程序将KivyMD工具栏与上述Kivy ActionBar和ActionOverflow功能配合使用?

奖励指向能够在工具栏的标题(文本)切入前 溢出工具栏上所有项目的功能

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)