这很奇怪,包含FilterChips的Wrap小部件在它的父组件ExpansionPanel中居中。我尝试将Wrap小部件 Package 在Flexible小部件中,没有React,我尝试将Wrap小部件 Package 在Expanded小部件中,没有React。
“扩展”面板上似乎没有向左对齐正文的属性:小部件。这很重要,因为当Wrap小部件被强制为全宽时,一些ExpansionPanel向左对齐,但其他的,如图所示,居中。最终我将在Padding小部件中 Package ExpansionPanel中的所有子部件,但我需要子Wrap小部件首先向左对齐。
bool travelSack;
ExpansionPanelRadio backpackingPanel = ExpansionPanelRadio(
value: "Backpacking",
headerBuilder: (BuildContext context, bool isExpanded) {
return ListTile(
leading: FaIcon(
FontAwesomeIcons.globeEurope,
size: 19,
),
title: Text("Backpacking"),
);
},
body: Expanded(child:
Wrap(spacing: 4, children: [
FilterChip(
showCheckmark: false,
label: Text('Travel rucksack'),
labelStyle: TextStyle(
color: travelSack ? Colors.black : Colors.white,
),
selected: travelSack,
onSelected: (bool selected) {
setState(() {
travelSack = !travelSack;
});
},
selectedColor: Colors.green.shade500,
backgroundColor: Colors.grey.shade500,
),
])
);
我是史酷比多谢帮忙
4条答案
按热度按时间juzqafwq1#
我通过将Wrap小部件嵌套在Align小部件中解决了这个问题:
我不喜欢我的解决方案,我担心嵌套对性能的影响,以及代码的蔓延会损害可读性,所以如果你有更好的解决方案,我会全力以赴。
zte4gxcn2#
Wrap
有一个alignment
属性,您可以使用它来对齐子项。https://api.flutter.dev/flutter/widgets/Wrap/Wrap.htmljw5wzhpr3#
我遇到了同样的问题,并解决了SizedBox:
记住不要同时使用width和height SizedBox属性,每个Wrap.direction只能使用一个。
参考文献
svgewumm4#
您可以使用.start属性将小部件向左对齐,如下所示。
//你也可以使用direction:Axis.horizontal属性来根据你的需要对齐。