Flutter 颤振:列行[初学者]

Flutter 颤振:列行[初学者],flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我是一个新手,一开始我试着编写我的第一个应用程序。 我只想实现一个带有文本字段的屏幕——这很有效。 现在我想把前两个文本字段排列在一起。我尝试使用Row(),但没有出现任何错误,但模拟器突然显示了一个空白页 有人能告诉我我需要改变什么吗?我不知道我做错了什么,因为我没有犯任何错误 谢谢你的帮助 import 'package:flutter/material.dart'; class TestEdit extends StatefulWidget { @override _TestEd

我是一个新手,一开始我试着编写我的第一个应用程序。 我只想实现一个带有文本字段的屏幕——这很有效。 现在我想把前两个文本字段排列在一起。我尝试使用Row(),但没有出现任何错误,但模拟器突然显示了一个空白页

有人能告诉我我需要改变什么吗?我不知道我做错了什么,因为我没有犯任何错误

谢谢你的帮助

import 'package:flutter/material.dart';

class TestEdit extends StatefulWidget {
  @override
  _TestEditState createState() => _TestEditState();
}

class _TestEditState extends State<TestEdit> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        automaticallyImplyLeading: true,
        //`true` if you want Flutter to automatically add Back Button when needed,
        //or `false` if you want to force your own back button every where
        backgroundColor: Colors.white,
        leading: IconButton(
          icon: Icon(Icons.arrow_back, color: Colors.black),
          onPressed: () => Navigator.pop(context, false),
        ),
      ),
      body: Column(
        children: <Widget>[
          Row(
            crossAxisAlignment: CrossAxisAlignment.start,
            //mainAxisSize: MainAxisSize.min,
            //padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
            children: <Widget>[
              //Row(children:[

              //crossAxisAlignment: CrossAxisAlignment.start,
              //mainAxisSize: MainAxisSize.min,
              Padding(
                padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
                child: TextField(
                  obscureText: false,
                  decoration: InputDecoration(
                    border: OutlineInputBorder(),
                    labelText: 'InputFirst',
                  ),
                ),
              ),
              Padding(
                padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
                child: TextField(
                  obscureText: false,
                  decoration: InputDecoration(
                    border: OutlineInputBorder(),
                    labelText: 'InputSecond',
                  ),
                ),
              ),
            ],
          ),
          //],
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
        ],
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
类TestEdit扩展了StatefulWidget{
@凌驾
_TestEditState createState()=>\u TestEditState();
}
类_TestEditState扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
自动嵌入:正确,
//`true `如果希望颤振在需要时自动添加后退按钮,
//或者“假”,如果你想在任何地方强制你自己的后退按钮
背景颜色:Colors.white,
领先:IconButton(
图标:图标(Icons.arrow\u back,颜色:Colors.black),
onPressed:()=>Navigator.pop(上下文,false),
),
),
正文:专栏(
儿童:[
划船(
crossAxisAlignment:crossAxisAlignment.start,
//mainAxisSize:mainAxisSize.min,
//填充:边缘组。对称(水平:10,垂直:10),
儿童:[
//世界其他地区(儿童:[
//crossAxisAlignment:crossAxisAlignment.start,
//mainAxisSize:mainAxisSize.min,
填充物(
填充:边缘方向。从STEB(10,10,10,0),
孩子:TextField(
模糊文本:false,
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:“InputFirst”,
),
),
),
填充物(
填充:边缘方向。从STEB(10,10,10,0),
孩子:TextField(
模糊文本:false,
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:“InputSecond”,
),
),
),
],
),
//],
填充物(
填充:边缘方向。从STEB(10,10,10,0),
孩子:TextField(
模糊文本:false,
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:“输入”,
),
),
),
填充物(
填充:边缘方向。从STEB(10,10,10,0),
孩子:TextField(
模糊文本:false,
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:“输入”,
),
),
),
填充物(
填充:边缘方向。从STEB(10,10,10,0),
孩子:TextField(
模糊文本:false,
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:“输入”,
),
),
),
填充物(
填充:边缘方向。从STEB(10,10,10,0),
孩子:TextField(
模糊文本:false,
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:“输入”,
),
),
),
填充物(
填充:边缘方向。从STEB(10,10,10,0),
孩子:TextField(
模糊文本:false,
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:“输入”,
),
),
),
填充物(
填充:边缘方向。从STEB(10,10,10,0),
孩子:TextField(
模糊文本:false,
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:“输入”,
),
),
),
],
),
);
}
}

TextField
小部件将尽量水平扩展

因此,如果您想将
文本字段
放入
,则应使用
灵活的
(或
扩展的
)小部件将其包装起来

试试这个

class TestEdit extends StatefulWidget {
  @override
  _TestEditState createState() => _TestEditState();
}

class _TestEditState extends State<TestEdit> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        automaticallyImplyLeading: true,
        //`true` if you want Flutter to automatically add Back Button when needed,
        //or `false` if you want to force your own back button every where
        backgroundColor: Colors.white,
        leading: IconButton(
          icon: Icon(Icons.arrow_back, color: Colors.black),
          onPressed: () => Navigator.pop(context, false),
        ),
      ),
      body: Column(
        children: <Widget>[
          Row(
            crossAxisAlignment: CrossAxisAlignment.start,
            //mainAxisSize: MainAxisSize.min,
            //padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
            children: <Widget>[
              //Row(children:[

              //crossAxisAlignment: CrossAxisAlignment.start,
              //mainAxisSize: MainAxisSize.min,
              Expanded( //TODO: Wrap with `Expanded` 
                child: Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
                  child: TextField(
                    obscureText: false,
                    decoration: InputDecoration(
                      border: OutlineInputBorder(),
                      labelText: 'InputFirst',
                    ),
                  ),
                ),
              ),
              Expanded( //TODO: Wrap with Expanded
                child: Padding(
                  padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
                  child: TextField(
                    obscureText: false,
                    decoration: InputDecoration(
                      border: OutlineInputBorder(),
                      labelText: 'InputSecond',
                    ),
                  ),
                ),
              ),
            ],
          ),
          //],
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
          Padding(
            padding: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 0),
            child: TextField(
              obscureText: false,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input',
              ),
            ),
          ),
        ],
      ),
    );
  }
}
class TestEdit扩展StatefulWidget{
@凌驾
_TestEditState createState()=>\u TestEditState();
}
类_TestEditState扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
自动嵌入:正确,
//`true `如果希望颤振在需要时自动添加后退按钮,
//或者“假”,如果你想在任何地方强制你自己的后退按钮
背景颜色:Colors.white,
领先:IconButton(
图标:图标(Icons.arrow\u back,颜色:Colors.black),
onPressed:()=>Navigator.pop(上下文,false),
),
),
正文:专栏(
儿童:[
划船(
crossAxisAlignment:crossAxisAlignment.start,
//mainAxisSize:mainAxisSize.min,
//填充:边缘组。对称(水平:10,垂直:10),
儿童:[
//世界其他地区(儿童:[
//crossAxisAlignment:crossAxisAlignment.start,
//mainAxisSize:mainAxisSize.min,
已展开(//TODO:用'Expanded'换行)
孩子:填充(
填充:边缘方向。从STEB(10,10,10,0),
孩子:TextField(
模糊文本:false,
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:“InputFi”
import 'package:flutter/material.dart';


class Beginner extends StatefulWidget {
  @override
  _BeginnerState createState() => _BeginnerState();
}

class _BeginnerState extends State<Beginner> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Row(
            children: [
              Text('A'),
              Text('B'),
              Text('C'),
            ],
          ),
          Row(
            children: [
              Text('A'),
              Text('B'),
              Text('C'),
            ],
          ),
          Row(
            children: [
              Text('A'),
              Text('B'),
              Text('C'),
            ],
          ),
          Row(
            children: [
              Text('A'),
              Text('B'),
              Text('C'),
            ],
          ),
        ],
      ),
    );
  }
}