在行小部件中忽略了Flutter TextAlign

时间:2019-07-31 08:23:09

标签: flutter dart alignment

我正在使用TextAlign来使一个文本居中,然后再次向右发送另一文本,所有文本都包含在Row中,但是对齐完全不起作用。 / p>

Scaffold(
  body: Row(
    children: <Widget>[
      Text('Align Centre', textAlign: TextAlign.center),
      Text('Align Right', textAlign: TextAlign.right),
    ],
  ),
);

您可以在这里看到它被完全忽略:

enter image description here

3 个答案:

答案 0 :(得分:1)

听起来您正在追寻这样的东西:

return Scaffold(
      body: Center(
        child: Row(
          children: <Widget>[
            SizedBox(width: MediaQuery.of(context).size.width / 3.3333333,),
            Expanded(child: Text('Align Centre adding more text heree....', textAlign: TextAlign.center)),
            Expanded(child: Text('Align Right', textAlign: TextAlign.right)),
          ],
        ),
      ),
    );

首先在行中添加一个空容器,将“对齐中心”文本推入中间。

编辑:而不是使用扩展的小部件,而是使用大小框,并固定宽度以占用视图的三分之一。

答案 1 :(得分:0)

使用展开的小部件换行:

    Scaffold(
      body: Row(
        children: <Widget>[
          Expanded(child: Text('Align Centre', textAlign: TextAlign.center)),
          Expanded(child: Text('Align Right', textAlign: TextAlign.right)),
        ],
      ),
    );

默认情况下,文本仅占用内容所需的空间。

或者您可能想要的:

    Scaffold(
      body: Stack(
        children: <Widget>[
          Positioned.fill(
              child: Text('Align Centre', textAlign: TextAlign.center)),
          Positioned.fill(
              child: Text('Align Right', textAlign: TextAlign.right)),
        ],
      ),
    );

答案 2 :(得分:0)

Scaffold(
    body: Row(
        children: <Widget>[
            Container(
                width:screen_width/2,
                alignment: Alignment.center,
                child: Text('Align Centre',),
            ),
            Container(
                width:screen_width/2,
                alignment: Alignment.centerRight,
                child: Text('Align right',),
            ),
        ],
    ),
);

您可以通过

获得screen_widht
  

double screen_width = MediaQuery.of(context).size.width;