Flutter OverflowBox


OverflowBox简介

它对child施加的约束不同于从其父控件获得的约束,可能允许child溢出父控件的空间.

  • 当OverflowBox的最大尺寸大于child的时候,child可以完整显示,当其小于child的时候,则以最大尺寸为基准,当然,这个尺寸都是可以突破父节点的

基本用法

OverflowBox设置最大/最小尺寸

  • SizedOverflowBox,一个特定大小的小部件,但将其原始约束传递给它的子节点,然后可能会溢出。
  • ConstrainedBox,一个对其子项施加额外约束的小部件。
  • UnconstrainedBox,一个试图让它的child在没有约束的情况下绘制的容器。
  • SizedBox,一个具有指定大小的盒子。

实例演示

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

class OverflowBoxDefault extends StatelessWidget {
  final double curmaxHeight;
  final double curmaxWidth;
  final double curHeight;
  final double curWidth;
  final AlignmentGeometry curalignment;

  OverflowBoxDefault(
      {Key key,
      this.curmaxHeight,
      this.curmaxWidth,
      this.curWidth,
      this.curHeight,
      this.curalignment})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    return OverflowBox(
      minHeight: 80.0,
      minWidth: 80.0,
      //设置最大宽,高
      maxWidth: curmaxWidth,
      maxHeight: curmaxHeight,

      //调整child位置
      alignment: curalignment,
      child: Container(
        //widget宽高大于overflowBox设置的最大,以overflowbox设置的最大宽高为限制,
        //小于overflowBox  设置的最大限度,子widget能够完全显示
        height: curHeight,
        width: curWidth,
        child: Text(
          "$curmaxWidth * $curmaxHeight",
          style: TextStyle(color: Colors.white),
        ),
        color: Color(0xfff48fb1),
      ),
    );
  }
}