Flutter 小部件不显示
Flutter Widgets Not Displaying
以下 Flutter 布局(一列内两行,每行包含一个文本小部件和一个字段小部件)编译并运行 - 但文本和文本字段小部件未显示。您应该看到的是单词 "username" 后跟一行中的文本字段,以及单词 "password" 后跟下一行中的文本字段。请问我做错了什么?
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Welcome to Flutter',
home: new Scaffold(
appBar: new AppBar(
title: new Text('Welcome to Flutter'),
),
body: new Container(
padding: new EdgeInsets.all(20.0),
child: new Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
new Text('User Name'),
new TextField(
autofocus: true,
decoration: new InputDecoration(
border: InputBorder.none,
hintText: 'Please enter your user name'),
),
],
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
new Text('User Name'),
new TextField(
decoration: new InputDecoration(
border: InputBorder.none,
hintText: 'Please enter your pasword'),
),
],
),
],
),
)),
);
}
}
根据 如果您将没有固有宽度的小部件放在一行中,则必须将它们嵌套在灵活的小部件中。
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Welcome to Flutter',
home: new Scaffold(
appBar: new AppBar(
title: new Text('Welcome to Flutter'),
),
body: new Container(
padding: new EdgeInsets.all(20.0),
child: new Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
new Flexible(
child: new Text('User Name:'),
),
new Flexible(
child: new Container(
margin: const EdgeInsets.all(15.0),
padding: const EdgeInsets.all(3.0),
decoration: new BoxDecoration(
border: new Border.all(color: Colors.blueAccent)),
child: new TextField(
style: Theme.of(context).textTheme.body1,
),
),
),
],
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
new Flexible(
child: new Text('Password:'),
),
new Flexible(
child: new Container(
margin: const EdgeInsets.all(15.0),
padding: const EdgeInsets.all(3.0),
decoration: new BoxDecoration(
border: new Border.all(color: Colors.blueAccent)),
child: new TextField(
style: Theme.of(context).textTheme.body1,
),
),
),
],
),
],
),
)),
);
}
}
使用新的灵活()
儿童小部件
Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Row(
children: [
new Flexible(
child: new MyText(
labelText: 'Select Country',
color: MyColors.hint,),
),
new Flexible(
child: TextFormField()
),
],
),
],
)
以下 Flutter 布局(一列内两行,每行包含一个文本小部件和一个字段小部件)编译并运行 - 但文本和文本字段小部件未显示。您应该看到的是单词 "username" 后跟一行中的文本字段,以及单词 "password" 后跟下一行中的文本字段。请问我做错了什么?
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Welcome to Flutter',
home: new Scaffold(
appBar: new AppBar(
title: new Text('Welcome to Flutter'),
),
body: new Container(
padding: new EdgeInsets.all(20.0),
child: new Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
new Text('User Name'),
new TextField(
autofocus: true,
decoration: new InputDecoration(
border: InputBorder.none,
hintText: 'Please enter your user name'),
),
],
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
new Text('User Name'),
new TextField(
decoration: new InputDecoration(
border: InputBorder.none,
hintText: 'Please enter your pasword'),
),
],
),
],
),
)),
);
}
}
根据
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Welcome to Flutter',
home: new Scaffold(
appBar: new AppBar(
title: new Text('Welcome to Flutter'),
),
body: new Container(
padding: new EdgeInsets.all(20.0),
child: new Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
new Flexible(
child: new Text('User Name:'),
),
new Flexible(
child: new Container(
margin: const EdgeInsets.all(15.0),
padding: const EdgeInsets.all(3.0),
decoration: new BoxDecoration(
border: new Border.all(color: Colors.blueAccent)),
child: new TextField(
style: Theme.of(context).textTheme.body1,
),
),
),
],
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
new Flexible(
child: new Text('Password:'),
),
new Flexible(
child: new Container(
margin: const EdgeInsets.all(15.0),
padding: const EdgeInsets.all(3.0),
decoration: new BoxDecoration(
border: new Border.all(color: Colors.blueAccent)),
child: new TextField(
style: Theme.of(context).textTheme.body1,
),
),
),
],
),
],
),
)),
);
}
}
使用新的灵活() 儿童小部件
Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Row(
children: [
new Flexible(
child: new MyText(
labelText: 'Select Country',
color: MyColors.hint,),
),
new Flexible(
child: TextFormField()
),
],
),
],
)