Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 设置行颤振中元素之间的间距_Flutter_Dart_Flutter Layout - Fatal编程技术网

Flutter 设置行颤振中元素之间的间距

Flutter 设置行颤振中元素之间的间距,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,代码: 新容器( 对齐:分馏loffset.center, 孩子:新的一排( mainAxisAlignment:mainAxisAlignment.space, 儿童:[ 新扁平按钮( 子项:新文本('没有帐户?',样式:新文本样式(颜色:颜色(0xFF2E33233)), ), 新扁平按钮( 子项:新文本('寄存器'),样式:新文本样式(颜色:颜色(0xFF84A2AF),字体权重:字体权重.bold), 按下:移动到注册表, ) ], ), ), 结果如下: 如何修复两个FlatB

代码:

新容器(
对齐:分馏loffset.center,
孩子:新的一排(
mainAxisAlignment:mainAxisAlignment.space,
儿童:[
新扁平按钮(
子项:新文本('没有帐户?',样式:新文本样式(颜色:颜色(0xFF2E33233)),
),
新扁平按钮(
子项:新文本('寄存器'),样式:新文本样式(颜色:颜色(0xFF84A2AF),字体权重:字体权重.bold),
按下:移动到注册表,
)
],
),
),  
结果如下:

如何修复两个
FlatButton
元素并排排列,屏幕宽度中心之间没有空格?

删除空格-:

new Container(
          alignment: FractionalOffset.center,
          child: new Row(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: <Widget>[
              new FlatButton(
                child: new Text('Don\'t have an account?', style: new TextStyle(color: Color(0xFF2E3233))),
              ),
              new FlatButton(
                child: new Text('Register.', style: new TextStyle(color: Color(0xFF84A2AF), fontWeight: FontWeight.bold),),
                onPressed: moveToRegister,
              )
            ],
          ),
        ),  
新行(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
手势检测器(
子项:新文本('没有帐户?',
样式:新文本样式(颜色:颜色(0xFF2E33233)),
onTap:(){},
),
手势检测器(
onTap:(){},
儿童:新文本(
“登记。”,
样式:新文本样式(
颜色:颜色(0xFF84A2AF),fontWeight:fontWeight.bold),
))
],
),

手势检测器(
onTap:(){},
孩子:新的一排(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
新文本('没有帐户?',
样式:新文本样式(颜色:颜色(0xFF2E33233)),
新文本(
“登记。”,
样式:新文本样式(
颜色:颜色(0xFF84A2AF),fontWeight:fontWeight.bold),
)
],
),
),

有很多方法,我在这里列出了一些:

  • 如果要设置特定的空间,请使用大小框

    GestureDetector(
                onTap: (){},
                child: new Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    new Text('Don\'t have an account?',
                        style: new TextStyle(color: Color(0xFF2E3233))),
                    new Text(
                      'Register.',
                      style: new TextStyle(
                      color: Color(0xFF84A2AF), fontWeight: FontWeight.bold),
                    )
                  ],
                ),
              ),
    


  • 根据您的需要使用mainAxisAlignment:

    Row(
      children: <Widget>[
        Text("1"),
        Spacer(), // use Spacer
        Text("2"),
      ],
    )
    


  • 使用
    换行
    而不是
    ,并将其对齐

    Wrap(
      spacing: 100, // set spacing here
      children: <Widget>[
        Text("1"),
        Text("2"),
      ],
    )
    
    Wrap(
    对齐方式:wrappalignment.spaceAround,//设置对齐方式
    儿童:[
    正文(“1”),
    文本(“2”),
    ],
    )
    

  • MainAxisAlignment

    Wrap(
      spacing: 100, // set spacing here
      children: <Widget>[
        Text("1"),
        Text("2"),
      ],
    )
    
    开始将子对象放置在尽可能靠近主轴起点的位置

    结束将子对象放置在尽可能靠近主轴末端的位置

    居中将子对象放置在尽可能靠近主轴中间的位置

    spaceBetween-将空闲空间均匀地放置在孩子之间

    spaceAround将空闲空间均匀地放置在两个孩子之间以及第一个和最后一个孩子前后的一半空间

    空间均匀-将空闲空间均匀地放置在两个孩子之间以及第一个和最后一个孩子之前和之后

    例如:

    子项:行(
    mainAxisAlignment:mainAxisAlignment.spaceBetween,
    儿童:[
    文本(“行1”),
    文本('Row2')
    ],
    )
    
    如果您只想在一行中的项目之间留出一点间距,则可以使用空格。下面的示例将两个文本小部件放在一行的中心,它们之间有一定的间距

    间隔符创建一个可调的空间隔符,可用于调整
    Flex
    容器中小部件之间的间距,如

    行中
    ,如果我们想在两个小部件之间留出空间,使其占用所有剩余空间

      child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              Text('Row1'),
              Text('Row2')
            ],
          )
    
    widget=行(
    儿童:[
    垫片(挠性:20),
    正文(
    “第1项”,
    ),
    间隔符(),//默认为flex:1
    正文(
    “第2项”,
    ),
    垫片(挠性:20),
    ]
    );
    
    我相信最初的帖子是关于删除一行按钮之间的空格,而不是添加空格

      child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              Text('Row1'),
              Text('Row2')
            ],
          )
    
    诀窍在于,按钮之间的最小间距是由于作为材料设计规范的一部分,按钮内置了填充物

    所以,不要使用按钮!而是一个手势检测器。此小部件类型提供了
    onClick
    /
    onTap
    功能,但没有样式

    请参阅本文中的示例


    为了确定准确的间距,我使用了
    填充
    。有两个图像的示例:

        widget = Row (
        children: <Widget>[
          Spacer(flex: 20),
          Text(
            "Item #1",
          ),
          Spacer(),  // Defaults to flex: 1
          Text(
            "Item #2",
          ),
          Spacer(flex: 20),
        ]
      );
    
    行(
    mainAxisAlignment:mainAxisAlignment.spaceAround,
    儿童:[
    扩大(
    孩子:填充(
    填充:常数边集全部(16.0),
    子级:Image.asset('images/user1.png'),
    ),
    ),
    扩大(
    孩子:填充(
    填充:常数边集全部(16.0),
    子级:Image.asset('images/user2.png'),
    ),
    )
    ],
    ),
    
    只需在元素之间添加“容器(宽度:5,颜色:Colors.transparent)”

    Row(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: <Widget>[
          Expanded(
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: Image.asset('images/user1.png'),
            ),
          ),
          Expanded(
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: Image.asset('images/user2.png'),
            ),
          )
        ],
      ),
    
    新容器(
    对齐:分馏loffset.center,
    孩子:新的一排(
    mainAxisAlignment:mainAxisAlignment.space,
    儿童:[
    新扁平按钮(
    子项:新文本('没有帐户?',样式:新文本样式(颜色:颜色(0xFF2E33233)),
    ),
    容器(宽度:5,颜色:彩色,透明),
    新扁平按钮(
    子项:新文本('寄存器'),样式:新文本样式(颜色:颜色(0xFF84A2AF),字体权重:字体权重.bold),
    按下:移动到注册表,
    )
    ],
    ),
    ),  
    
    行(
    儿童:[
    灵活的(
    子项:TextFormField()),
    集装箱(宽20,高20),
    灵活的(
    子项:TextFormField(
    
        widget = Row (
        children: <Widget>[
          Spacer(flex: 20),
          Text(
            "Item #1",
          ),
          Spacer(),  // Defaults to flex: 1
          Text(
            "Item #2",
          ),
          Spacer(flex: 20),
        ]
      );
    
    Row(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: <Widget>[
          Expanded(
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: Image.asset('images/user1.png'),
            ),
          ),
          Expanded(
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: Image.asset('images/user2.png'),
            ),
          )
        ],
      ),
    
    new Container(
          alignment: FractionalOffset.center,
          child: new Row(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: <Widget>[
              new FlatButton(
                child: new Text('Don\'t have an account?', style: new TextStyle(color: Color(0xFF2E3233))),
              ),
                Container(width: 5, color: Colors.transparent),
              new FlatButton(
                child: new Text('Register.', style: new TextStyle(color: Color(0xFF84A2AF), fontWeight: FontWeight.bold),),
                onPressed: moveToRegister,
              )
            ],
          ),
        ),  
    
    Row(
     children: <Widget>[
      Flexible(
       child: TextFormField()),
      Container(width: 20, height: 20),
      Flexible(
       child: TextFormField())
     ])