Flet Python代码问题:添加的三张卡片无法水平扩展
解决三张卡片无法水平扩展的问题
你的问题出在右侧卡片的布局设置上:虽然你给外层容器和卡片的父Container加了expand=True,但卡片本身没有配置水平方向的填充逻辑,导致它们只会在垂直方向拉伸,水平方向还是跟着内容自适应宽度,没法填满右侧空白。
具体修改方案
给每个卡片内部包裹Text的Container加上expand=True,同时确保Card组件也开启expand=True,让卡片能占满父容器的水平空间。
修改后的完整代码:
mainpage = ft.Row( controls=[ ft.Container( content=ft.Card( content=ft.Container( content=ft.Column( [ ft.Text( "Select your IP", weight=ft.FontWeight.BOLD, size=18, text_align=ft.TextAlign.CENTER, ), *IPBox, ], spacing=5, horizontal_alignment=ft.CrossAxisAlignment.CENTER, ), padding=20, ) ), expand=True, ), ft.Container( content=ft.Column( [ ft.Container( content=ft.Card( content=ft.Container( content=ft.Text("Card 1"), padding=20, expand=True # 新增:让内部容器占满Card空间 ), expand=True # 确保Card占满父Container空间 ), expand=True ), ft.Container( content=ft.Card( content=ft.Container( content=ft.Text("Card 1"), padding=20, expand=True # 新增 ), expand=True ), expand=True ), ft.Container( content=ft.Card( content=ft.Container( content=ft.Text("Card 1"), padding=20, expand=True # 新增 ), expand=True ), expand=True ), ], spacing=10, expand=True, ), expand=True, ), ], expand=True, )
补充调整方案
如果上述修改后仍未生效,可以给包裹Column的外层Container添加alignment=ft.alignment.center,或者直接给每个卡片的外层Container设置width=ft.expand,强制水平方向填满可用空间。
内容的提问来源于stack exchange,提问作者Ayman El Hasnaoui




