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