带有额外空格的 Python KivyMD MDBottomSheet

Posted

技术标签:

【中文标题】带有额外空格的 Python KivyMD MDBottomSheet【英文标题】:Python KivyMD MDBottomSheet with extra blank space 【发布时间】:2020-12-14 11:40:21 【问题描述】:

我现在正在构建一个应用程序,我想在那里实现 MDBottomSheet,但是有一个问题:底部表总是有一些额外的空白空间。

它是这样的:

我很确定您可以看到“取消”按钮后有空白区域,我不知道如何解决。

这是我的一些 Python 代码:

from kivymd.app import MDApp
from kivymd.uix.bottomsheet import MDListBottomSheet

class MainApp(MDApp):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
    
    def screen_switch(self, scr_name):
        self.root.manager.current = scr_name
        self.root.toolbar.title = scr_name.capitalize()
        
    def open_bottom_sheet(self):
        bottom_sheet_menu = MDListBottomSheet(radius_from="top", radius=15)

        menu_items = [

            ("About the app", lambda x: self.screen_switch("About the app"), "help"),
            ("Leave a review", lambda x: self.screen_switch("Leave a review"), "email"),
            ("Cancel", lambda x: bottom_sheet_menu.dismiss(), "close")
            
        ]

        for txt, func, icon in menu_items:
            bottom_sheet_menu.add_item(txt, func, icon)

        bottom_sheet_menu.open()


这是我的一些 Kivy 代码:

BoxLayout:
    orientation: "vertical"

    toolbar: toolbar

    MDToolbar:
        id: toolbar
        type: "top"
        title: "Plans"
        right_action_items: [("dots-vertical", lambda y: app.open_bottom_sheet())]

提前致谢!

【问题讨论】:

您是否尝试更改 MDListBottomSheet 的 size_hint_y:Noneheight:'200sp' [根据需要更改此值] 【参考方案1】:

我尝试了这个解决方法,它奏效了。在 open 语句之前插入以下行。

bottom_sheet_menu.sheet_list.ids.box_sheet_list.padding = (dp (16), 0, dp (16), 0)

希望它也对你有用。

【讨论】:

以上是关于带有额外空格的 Python KivyMD MDBottomSheet的主要内容,如果未能解决你的问题,请参考以下文章

带有额外空格的多行字符串(保留缩进)

我在 Python/KivyMD 中制作了 MDDialog 但没有正确显示

如何在 KivyMD (Python) 中结合导航抽屉和多个屏幕?

KivyMD 带有下拉菜单的文本字段

如何在kivymd python的MDDataTable中以编程方式取消选中复选框

Kivymd:如何在不创建自定义类的情况下在列表项中添加复选框?