我有一张卡片,其中这张卡片的第一行将有 2 项文字。

我想在最开始放置一个项目,然后直接在中心放置下一个项目。

我玩过 MainAxisAlignment 但似乎没有什么能满足这种情况,例如,如果我使用 MainAxisAlignment.spaceBetween 那么每个项目都放在行的末尾。

有没有明显的方法来做到这一点?

谢谢

最佳答案

您可以使用 Spacer 小部件来填充行中的可用空间:

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Padding(
            padding: const EdgeInsets.all(8.0),
            child: SpacedRow(),
          ),
        ),
      ),
    );
  }
}

class SpacedRow extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Row(
      children: <Widget>[
        Container(width: 50, height: 50, color: Colors.red),
        Spacer(),
        Container(width: 50, height: 50, color: Colors.yellow),
        Spacer(),
      ],
    );
  }
}

产生:

Flutter 行将一项放在开始处,将另一项放在中间-LMLPHP

关于Flutter 行将一项放在开始处,将另一项放在中间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54327355/

10-12 01:51