Flutter 常用组件-1 容器组件

容器组件Container包含一个子widget,自身具备alignment、padding等属性,方便布局过程中摆放child。

1 容器组件常用属性

属性名类型说明
keykeyContainer唯一标识符,用于查找更新
alignmentAlignmentGeometry控制child的对齐方式,如果Container或者Container的父节点尺寸大于child的尺寸,该属性设置会起作用,有很多种对齐方式
paddingEdgeInsetsGeometryDecoration内部的空白区,如果有child,child位于padding内部
colorColor用来设置Container背景色,如果foregroudDecoration设置的话,可能会覆盖color效果
decorationDecoration绘制在child后面的修饰,设置了Decoration的话,就不能设置color属性,否则会报错,此时应该在Decoration中进行颜色的设置
foregroundDecorationDecoration绘制在child前面的装饰
widthdoubleContainer的宽度,设置为double.infinity可以强制在宽度上撑满,不设置,则根据child和父节点两者一起布局
heightdoubleContainer的高度,设置为double.infinity可以强制在高度上撑满
constraintsBoxConstraints添加到child上额外的约束条件
marginEdgeInsetsGeometry围绕在Decoration和child之外的空白区域,不属于内容区域
transformMatrix4设置Container的变换矩阵,类型为Matrix4
childWidgetContainer中的内容Widget
  • padding与margin的不同之处:padding是包含在Content内,而margin是外部边界。设置点击事件的话,padding区域会响应,而margin区域不会响应。

2 容器组件示例:

import 'dart:math';
import 'package:flutter/material.dart';

void main()=>runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text("Container demo"),
        ),
        body: Center(
          child: Container(
            padding: EdgeInsets.only(top: 20.0),
            width: 200.0,
            height: 200.0,
            decoration: BoxDecoration(
              border: Border.all(color: Color(0xffff0000), width: 10.0),
              borderRadius: const BorderRadius.all(const Radius.circular(30.0)),
            ),
            child: Text(
              'Container',
              style: TextStyle(fontSize: 28.0),
            ),
            transform:Matrix4.rotationZ(-pi/9),
          ),
        ),
      ),
    );
  }
}

显示如下图:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值