布局组件,就目前作者所知道的一些,类似于:
Scaffold、Container、Column、Row、Center等之类的组件
下面由作者来粗略介绍,然后每个组件单开一个篇章。
1.Scaffold:
翻译:
通过翻译的理解,我们大概能够理解一点Scaffold的功能所在:
利用这个脚手架去攀爬一些其他的组件,例如我们可以这么写:
class xxx extends StatelessWidget
{
@override
Widget Build(BuildContext context)
{
return MaterialApp(//MaterialApp是根组件,这点我们可以以后再补充
home:Scaffold(
body:Container()//这里可以加绝大部分布局组件
)
);
}
}
Scaffold拥有一些参数,例如AppBar、drawer等组件,等到下次详细补充吧。
2.Container:
翻译:
通过翻译的理解,我们大概能够在看到代码之前理解一部分的功能:
创建一个容器,可以包裹东西。
例如我们可以这么写:
class xxx extends StatelessWidget{
@override
Widget Build(BuildContext){
return Scaffold(
body:Container(
width: double,
height: double,//通过这些调整Container的大小
child:Column(
)//这里也可以放绝大部分组件
)
);
}
}
Container可以理解为在页面上开创一个width*height的容器,里面可以装一个子组件
3.Row/Column
翻译:
通过翻译,我们能够感受到,这两个分别是水平和垂直的区别。
我们能够通过这两个组件做到水平/垂直多放置组件,具体这样实现:
class xxx extends StatelessWidget{
@override
Widget Build(BuildContext context)
{
return Scaffold(
body:Row(
children:<Widget>[
//此处可以放组件来进行水平的排列
]
)
);
}
}
Column与Row同理,使用时只需要将Row改成Column即可
4.Center
翻译:
很明显的组件,和Column相似,不过它只能有一个子组件,你可以理解为居中的Container:
class xxx extends StatelessWidget{
@override
Widget Build(BuildContext context)
{
@override
return Scaffold(
body:Center(
child:Container()//此处子组件也可放绝大部分组件
)
)
}
}
5.ListView
翻译:
通过翻译,我们可以理解,这个组件是列表类型的,
我们可以通过使用它对界面进行滑动拓展:
class xxx extends StatelessWidget{
@override
Widget Build(BuildContext context)
{
return ListView(
children:<Widget>[
//此处放子组件
]
)
}
}
ListView和Column比较像,但是它可以拓展界面,而Column一但子组件内容过多则会溢出屏幕造成报错。
6.Stack
翻译:
通过翻译,我们大体可以了解到这是个可以重叠的组件,可以通过children来表现:
class xxx extends StatelessWidget
{
@override
Widget Build(BuildContext context)
{
return Scaffold(
body:stack(
children:<Widget>[
//这里放的组件可以重叠
]
)
)
}
}
7.SizedBox
翻译:
SizedBox没有翻译,不过事实上,单纯的看这个翻译就能够想象这个组件的功能,
这个时候我们会想到Container,这两个难道不是很相似吗,那么这个SizedBox有什么用呢?
事实上,SizedBox可以强制子组件的大小,宽高等等属性。
代码就不放了,和上面差不多。
那么作者就先说这么多了,等有想要补充的地方,我会再回来补充的。