我正在创建类似测验的应用程序.我的目标是从单独的按钮(框)打开每个问题.按钮的数量不是恒定的,所以我动态生成它们. 然而,我在统一它们的大小(每个应该具有相同的宽度和高度)并在它们和屏幕之间设置空间方面遇到了一个问题.
我想实现类似的功能,但正如您所看到的,按钮的宽度各不相同,并且屏幕两侧的填充方式也不同.
因此按钮应该这样组织:
[dynamic space to edge][button][button space][button][buttons space][.....][button][dynamic space to edge].
我这样try 过:
Widget getSectionBoxes(String id, num j) {
List<Widget> boxes = [];
for (int i = 0; i < questions[id].length; i++) {
j++;
String questionId = questions[id][i];
boxes.add(OutlinedButton(
onPressed: () {
debugPrint(questionId);
},
style: ButtonStyle(
shape: MaterialStateProperty.all<RoundedRectangleBorder>(
RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
))),
child: Text(j.toString())));
boxes.add(const SizedBox(width: 10));
}
return Wrap(
alignment: WrapAlignment.center,
children: boxes,
);
}
我try 过使用Wrap小部件,它可以按照我想要的方式订购盒子,但没有空间.如果我在按钮之间添加sizedBox小部件(width: 10),那么我的左边缘或右边缘就有额外的空间.它在第一行尤其明显.