When a row is in a parent that does not provide a finite width constraint, for example if it is in a

return Container(
      child: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Container(
            child: CupertinoTextField(
              placeholder: '请输入手机号',
              placeholderStyle:
                  TextStyle(fontSize: 13, color: AppCustomColor.fontGreyColor),
              prefix: Container(
                width: 60,
                child: Text(
                  '手机号',
                  style: TextStyle(fontSize: 14),
                ),
              ),
              decoration: null,
            ),
          ),
          Container(
            child: FlatButton(
              onPressed: () {},
              child: Text('获取验证码'),
              textColor: AppCustomColor.themeGreenColor,
            ),
          ),
        ],
      ),
    );

这样写的flutter布局的时候,报出下面的错误

When a row is in a parent that does not provide a finite width constraint, for example if it is in a horizontal scrollable, it will try to shrink-wrap its children along the horizontal axis. Setting a flex on a child (e.g. using Expanded) indicates that the child is to expand to fill the remaining space in the horizontal direction.
These two directives are mutually exclusive. If a parent is to shrink-wrap its child, the child cannot simultaneously expand to fit its parent.

吧container改成flex类的布局控件就可以了

 _loginPasswordInput() {
    return Container(
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          Expanded(
            child: CupertinoTextField(
              placeholder: '请输入手机号',
              placeholderStyle:
                  TextStyle(fontSize: 13, color: AppCustomColor.fontGreyColor),
              prefix: Container(
                width: 60,
                child: Text(
                  '手机号',
                  style: TextStyle(fontSize: 14),
                ),
              ),
              decoration: null,
            ),
          ),
          Expanded(
            child: FlatButton(
              onPressed: () {},
              child: Text(
                '获取验证码',
                textAlign: TextAlign.right,
              ),
              textColor: AppCustomColor.themeGreenColor,
            ),
          ),
        ],
      ),
    );

版权声明:本文为wangqiuwei07原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。