将小部件放在行内到行尾

Ped*_*ngo 3 dart flutter flutter-layout

我只是被困在这里。我已经尝试了一切,但对我没有任何帮助。我想要的只是将图标放在“行”的右侧。

注意:我尝试将行内的所有窗口小部件设置为Align Widget,并处理该Align小部件的位置,但是没有任何效果。下面的代码正在检索此代码:

在此处输入图片说明

此箭头应转到“行”小部件的末尾。这是我的代码:

Row(
    mainAxisAlignment: MainAxisAlignment.start, //change here don't //worked
    crossAxisAlignment: CrossAxisAlignment.center,
    children: <Widget>[
      Container(
        margin:
            EdgeInsets.only(left: 8.0, top: 8.0, bottom: 8.0, right: 12.0),
        width: 15.0,
        height: 15.0,
        decoration: BoxDecoration(
            color: task.color, borderRadius: BorderRadius.circular(40.0)),
      ),
      Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Text(
            task.title,
            style: TextStyle(
                color: Colors.black,
                fontSize: 19.0,
                fontWeight: FontWeight.bold),
          ),
          Text(
            'Duration: ${task.date}',
            style: TextStyle(color: Colors.black, fontSize: 14.0),
          )
        ],
      ),
      Icon(Icons.navigate_next, color: Colors.black) // This Icon
    ],
  ),
Run Code Online (Sandbox Code Playgroud)

Cop*_*oad 11

解决方案:

  1. 使用Spacer

    Row(
      children: <Widget>[
        Text('1'),
        Spacer(), // <-- Use 'Spacer'
        Text('2'),
      ],
    )
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用mainAxisAlignment

    Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween, // <-- spaceBetween
      children: <Widget>[
        Text('1'),
        Text('2'),
      ],
    )
    
    Run Code Online (Sandbox Code Playgroud)

输出(两者相同):

在此输入图像描述


use*_*442 10

一种解决方案是使用Spacer小部件填充空间

https://docs.flutter.io/flutter/widgets/Spacer-class.html

    Row(
            mainAxisAlignment: MainAxisAlignment.start, //change here don't //worked
            crossAxisAlignment: CrossAxisAlignment.center,
            children: <Widget>[
              Container(
                margin:
                    EdgeInsets.only(left: 8.0, top: 8.0, bottom: 8.0, right: 12.0),
                width: 15.0,
                height: 15.0,
                decoration: BoxDecoration(
                    color: Colors.red, borderRadius: BorderRadius.circular(40.0)),
              ),
              Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Text(
                    "task.title",
                    style: TextStyle(
                        color: Colors.black,
                        fontSize: 19.0,
                        fontWeight: FontWeight.bold),
                  ),
                  Text(
                    'Duration: ${somenum}',
                    style: TextStyle(color: Colors.black, fontSize: 14.0),
                  )
                ],
              ),
              new Spacer(), // I just added one line
              Icon(Icons.navigate_next, color: Colors.black) // This Icon
            ],
          ),
Run Code Online (Sandbox Code Playgroud)

这样行吗?

如果将其添加到行的开头,将会发生这种情况。 在此处输入图片说明


Nai*_*hhi 7

您可以在Spacer(),要放在最后的小部件上方添加。