flutter收缩组件_Flutter 基础布局Widgets之FittedBox详解

10281dec65c406537060f7fea7517fef.png

FittedBox概述

FittedBox组件的作用是对child组件进行缩放和对齐方式的设置,其缩放的参数为fit,有多种选择的方式,而对齐方式alinment用法则和之前一致,即很多都是相通的。

FittedBox构造函数

const FittedBox({ Key key, this.fit = BoxFit.contain, this.alignment = Alignment.center, Widget child, })
  • fit 即child的缩放方式,比如以下缩放方式:
  • fill(通过扭曲源的纵横比填充目标框。):
2b83138e70a61dc2ae0eecd2294bb76c.png

contain(尽可能大,同时仍然将源完全包含在目标框中):

f3ebac323fee645740f142bfd832ea21.png

cover(尽可能小,同时仍然覆盖整个目标框):

5b3aa5bfab4dfa621ad1324a6b970264.png

fitWidth(确保显示了源的全部宽度,不管这是否意味着源垂直地溢出目标框):

f34f5a1b97e723001611da6423f3192d.png

fitHeight(确保显示源的完整高度,不管这是否意味着源水平地溢出目标框):

21387ae5957e0e9aa7bb4fa75e4084c1.png

none(将源文件对齐到目标框内(默认情况下居中),并丢弃位于框外的源文件的任何部分。

源映像没有调整大小。):

b4949ef2395ccc61c9f449b64b0a2b6e.png

scaleDown(将源文件对齐到目标框内(默认情况下,居中),如果需要,将源文件向下缩放,以确保源文件适合框内,这与contains相同,如果它会收缩图像,则它与none相同):

f260a947baa8a3e921eb3ef27a972104.png
  • alignment child对齐方式

简单示例

// fittedBoximport 'package:flutter/material.dart';class FittedBoxLearn extends StatelessWidget { @override Widget build(BuildContext context) { return new Scaffold( appBar: AppBar( title: Text('FittedBox'), ), body: Center( child: Container( width: 300, height: 400, decoration: BoxDecoration( border: Border.all(),  ), // 根据内部child伸缩填充父容器 child: FittedBox( // 填充方式 比如contain 尽可能大,同时仍然将源完全包含在目标框中。 还有cover、fill、fitWidth、fitHeight等方式 fit: BoxFit.contain, // 对齐方式 alignment: Alignment(0, 0), child: Container( color: Colors.blueAccent, width: 30, height: 30, ) ), ), )); }}

示例效果

f13f9a6331e138ca1ab51117085e4215.png

E4F43F9BA9B8953BC27488883B30B82F.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值