Flutter学习Padding、Row、Column、Expanded组件
Padding组件
因为Flutter中有很多Widget
,没有❀我们可以使用属性❀ Padding 成分 处理容器与其子元素之间的直接分离。功能 mainAxisAlignment
主轴排序方法
crossAxisAlignment
次要轴❝排序方法子组件
子组件
垂直列布局组件
属性 描述 | ||
---|---|---|
主轴对齐 | 主轴❝排序方法 | 辅助轴♿排序方法sub下属 |
当我们讲解 这里值得注意的是,如果我们将 代码如下: 效果如下。从图中可以看出,主轴上并没有我们想象的那样有孔。 关于textDirection和verticalDirection,我们不需要记住谁控制谁在行,谁控制谁在列 我们只需要记住用于控制水平文本方向。 Direction 位置和排列方向 然后记住 你可以把Row
和 Column
如果在主轴方向取最大值,layout_width行的相当于
匹配列匹配
线性布局LinearLayout
layout_height
是 match_parent。
属性图
mainAxisAlignment
图解mainAxisAlignment❝❝❝主轴和交叉轴时。如果是柱子,则长轴为垂直轴,横轴为水平轴;如果是一行,则长轴为水平轴,横轴为垂直轴。? :
middle
:中心显示
子项之间“空间 id”之间的空间:
空间周围
:将空的区域均匀分布,使得孩子之间的空的面积相等,但第一个和最后一个孩子的空的面积是1/2
spaceEvenly :将空的均分主轴方向面积相等,因此children之间的空白空间相等,包括第一个和最后一个child;
mainAxisSize
插图 MainAxisSize
有两个值: 有两个值:
限制布局中可用的最大值:轴方向;
min:与max不同,它最小化主轴方向上的可用空间;
从这里可以看到,这两个属性让人想起我们接触过的Android
match_parent♽的样子♽。
中mainAxisSize
设置为min,并且还设置了mainAxisAlignment
,效果可能不会出现。
主轴方向默认为最大,可设置为最小 class WidgetTest extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
width: 100,
height: 100,
color: ,
),Container(
width: 100,
height: 100,
color: ,
),Container(
width: 100,
height: 100,
color: ,
)
],
);
}
}
垂直方向 用于控制垂直方向的起始位置和排列方向
MainAxisAlignment(主轴)就是与当前控制方向匹配的轴 CrossAxisAlignment(横轴) 是垂直于当前控件方向的轴 Expanded
布局 flex和ed
布局想象为
Android android:layout_weight
在xml属性中从属于或者现在:无弹性,所以扩展所占用的空间不会被占用。如果大于0,则所有Expanded会按照其flex的比例来划分主轴上的所有自由空间
接下来掌握demo写法:大概的效果是:
void main() => runApp(WidggetTestApp());
class WidggetTestApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Row,Column学习'),
),
body: WidgetTest(),
),
);
}
}
class WidgetTest extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
padding: (5),
child: Column(
children: <Widget>[
Container(
height: 200,
color: ,
),
SizedBox(
height: 5,
),
Container(
height: 200,
child: Row(
children: <Widget>[
Expanded(
flex: 2,
child: Container(
height: 200,
child: (""
,fit: ,
),
)
),
SizedBox(
width: 5,
),
Expanded(
flex: 1,
child: Column(
children: <Widget>[
Expanded(
flex: 1,
child: ('' ,fit: ,) ,
),
SizedBox(
height: 5,
),
Expanded(
flex: 1,
child: ('' ,fit: ,) ,
),
],
) ,
),
],
),
)
],
),
);
}
}
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。