android 定位修改坐标系_【Flutter实战】定位装饰权重组件及柱状图案例

本文详细介绍了Flutter中的定位装饰组件,包括Container、SizedBox、AspectRatio、FractionallySizedBox的用法,并给出了实战案例。同时讲解了权重组件如Expanded、Flexible和Spacer的使用,以及柱状图的实现方法。
摘要由CSDN通过智能技术生成

165d900daecc0663e7016b93e48541bc.png

老孟导读:Flutter中有这么一类组件,用于定位、装饰、控制子组件,比如 Container (定位、装饰)、Expanded (扩展)、SizedBox (固定尺寸)、AspectRatio (宽高比)、FractionallySizedBox (占父组件比例)。这些组件的使用频率非常高,下面一一介绍,最后给出项目中实际案例熟悉其用法。 【Flutter实战】系列文章地址:http://laomengit.com/guide/introduction/mobile_system.html

Container

Container 是最常用的组件之一,它是单容器类组件,即仅能包含一个子组件,用于装饰和定位子组件,例如设置背景颜色、形状等。

最简单的用法如下:

Container(
    child: Text('老孟'),
 )

子组件不会发生任何外观上的变化:

undefined_b.jpg

设置背景颜色:

Container(
    color: Colors.blue,
    child: Text('老孟'),
)

c00261b5b90422b3beb515cc57780c26.png

设置内边距( padding ) 和 外边距( margin )

Container(
      color: Colors.blue,
      child: Container(
        margin: EdgeInsets.all(10),
        padding: EdgeInsets.all(20),
        color: Colors.red,
        child: Text('老孟'),
      ),
    )

效果如下:

8ea576adba832d06ceab1dd20362e733.png

decoration 属性设置子组件的背景颜色、形状等。设置背景为圆形,颜色为蓝色:

Container(
  child: Text('老孟,专注分享Flutter技术及应用'),
  decoration: BoxDecoration(shape: BoxShape.circle, color: Colors.blue),
)

undefined_b.jpg

默认情况下,圆形的直径等于 Container 窄边长度,相当于在矩形内绘制内切圆。

上面的情况明显不是我们希望看到了,希望背景是圆角矩形:

Container(
        child: Text('老孟,专注分享Flutter技术及应用'),
        padding: EdgeInsets.symmetric(horizontal: 10),
        decoration: BoxDecoration(
            shape: BoxShape.rectangle,
            borderRadius: BorderRadius.all(Radius.circular(20)),
            color: Colors.blue),
      )

4aa8f9db5e3c7ebd0aaf2fd046d3f6eb.png

除了背景我们可以设置边框效果,代码如下:

Container(
        child: Text('老孟,专注分享Flutter技术及应用'),
        padding: EdgeInsets.symmetric(horizontal: 10),
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(12),
          border: Border.all(
            color: Colors.blue,
            width: 2,
          ),
        ),
      )

19720cdf134656c8f562da7d563bbd8d.png

创建圆角图片和圆形图片:

Container(
      height: 200,
      width: 200,
      decoration: BoxDecoration(
        image:  DecorationImage(
          image: NetworkImage(
              'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl-2.jpg'),
          fit: BoxFit.cover,
        ),
        border: Border.all(
          color: Colors.blue,
          width: 2,
        ),
        borderRadius: BorderRadius.circular(12),
      ),
    )

7f03e9765f97e2bc2533cb85f0897f52.png 修改其形状为圆形,代码如下:
Container(
      height: 200,
      width: 200,
      decoration: BoxDecoration(
        image: DecorationImage(
          image: NetworkImage(
              'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl-2.jpg'),
          fit: BoxFit.cover,
        ),
        border: Border.all(
          color: Colors.blue,
          width: 2,
        ),
        shape: BoxShape.circle,
      ),
    )

264b436d3424ffe57a539fac4de80fab.png

设置对齐方式为居中,背景色为蓝色,代码如下:

Container(
        color: Color
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值