首页 > 解决方案 > 在 ScrollView KivyMD 下居中 MDlist 文本

问题描述

我正在努力将 ScrollView 中的文本居中。

我的 KV 代码如下:

from kivy.uix.scrollview import ScrollView
from kivymd.app import MDApp
from kivymd.uix.list import MDList, OneLineListItem

kv =""""
    ScrollView:
        do_scroll_x: False  # Important for MD compliance
        MDList:
            OneLineListItem:
                text: "Single-line item"
"""

class MainApp(MDApp):
    def build(self):
        sv = ScrollView()
        ml = MDList()
        sv.add_widget(ml)
        contacts = ["Paula", "John", "Kate", "Vlad"]
        for c in contacts:
            ml.add_widget(
                OneLineListItem(
                    text=c
                )
            )
        return sv

if __name__ == '__main__':
    MainApp().run()

这是屏幕的样子: 居中问题

请帮忙!

标签: pythonlistkivyscrollview

解决方案


一种方法是对 进行子类化OneLineListItem,因此您可以halign为水平对齐添加一个参数:

class OneLineListItemAligned(OneLineListItem):
    def __init__(self, halign, **kwargs):
        super(OneLineListItemAligned, self).__init__(**kwargs)
        self.ids._lbl_primary.halign = halign


class MainApp(MDApp):
    def build(self):
        sv = ScrollView()
        ml = MDList()
        sv.add_widget(ml)
        contacts = ["Paula", "John", "Kate", "Vlad"]
        for c in contacts:
            ml.add_widget(OneLineListItemAligned(halign="center", text=c))
        return sv

if __name__ == '__main__':
    MainApp().run()

PSkv您的示例中未使用部分代码...


推荐阅读