对齐属性不起作用,所以我使用空的扩展小部件

Alignment properties doesn't work so I use empty expanded widget

我想在右边添加文字,目前我在做什么

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  static const String _judul = 'Private Chat';
  static var _warnaTema = Colors.pink[100];

  Widget _dummyExpanded() {
    return Expanded(
      child: Container(), //contain empty data,
    ); //just for fill remaining space
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: _judul,
      theme: ThemeData(
        primaryColor: _warnaTema,
      ),
      home: Column(
        children: [
          Container(
            child: Row(
              children: [
                this._dummyExpanded(),
                Text('this is real data 1'),
              ],
            ),
          ),
          Container(
            child: Row(
              children: [
                this._dummyExpanded(),
                Text('this is real data 2'),
              ],
            ),
          )
        ],
      ),
    );
  }
}

布局输出符合我的预期(文本在右边),但是有不需要的代码。

如你所见,我使用了不必要的方法 _dummyExpanded 来填充 available space 刚刚用空容器展开。当然,由于有许多嵌套的行和列,因此很难阅读,我如何删除不需要的方法而不丢失我期望的布局输出?

我想我应该使用对齐,但我不知道如何使用

方法一

         Container(
            child: Row(
              mainAxisAlignment:MainAxisAlignment.end,
              children: [
                Text('this is real data 2'),
              ],
            ),
          )

方法二

我比较喜欢这个方法,你可以用这个方法换行。 您也可以使用 Flexible 小部件代替 Expanded

       Container(
        child: Row(
          children: [
            Expanded(child: Text('this is real data 2', textAlign:TextAlign.end )),
          ],
        ),
      )

方法三

如果您只有 Text 个小部件作为 Column 小部件的子项,那么您可以为父 Column 小部件设置 crossAxisAlignment: CrossAxisAlignment.end,