Flutter基础widgets教程-OverflowBox篇

简介: Flutter基础widgets教程-OverflowBox篇

1 OverflowBox

对其子项施加不同约束的widget,它可能允许子项溢出父级

2 构造函数

OverflowBox({
    Key key,
    this.alignment = Alignment.center,
    this.minWidth,
    this.maxWidth,
    this.minHeight,
    this.maxHeight,
    Widget child,
})

复制

3 常用属性

3.1 alignment:对齐方式

alignment:Alignment.center,

复制

3.1.1 顶部左边

alignment:Alignment.topLeft,

复制

3.1.2 顶部中间

alignment:Alignment.topCenter,

复制

3.1.3 顶部右边

alignment:Alignment.topRight,

复制

3.1.4 中部左边

alignment:Alignment.centerLeft,

复制

3.1.5 中部中间

alignment:Alignment.center,

复制

3.1.6 中部右边

alignment:Alignment.centerRight,

复制

3.1.7 底部左边

alignment:Alignment.bottomLeft,

复制

3.1.8 底部中间

alignment:Alignment.bottomCenter,

复制

3.1.9 底部右边

alignment:Alignment.bottomRight,

复制

3.2 minWidth:允许child的最小宽度,如果child宽度小于这个值,则按照最小宽度进行显示

minWidth: 200.0,

复制

3.3 maxWidth:允许child的最大宽度,如果child宽度大于这个值,则按照最大宽度进行展示

maxWidth: 200.0,

复制

3.4 minHeight:允许child的最小高度,如果child高度小于这个值,则按照最小高度进行显示

minHeight: 200.0,

复制

3.5 maxHeight:允许child的最大高度,如果child高度大于这个值,则按照最大高度进行展示

maxHeight: 200.0,

复制

3.6 child:子widget

child: Text('你好 Flutter'),

复制

4 显示效果

image.png

5 widget代码

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
// 字体适配
import '../../utils/app_size.dart';
class ListOverflowBox extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      length: 2,
      child: Scaffold(
        appBar: AppBar(
          title: Text('OverflowBox'),
          backgroundColor: Color(0xFFfafcff),
          bottom: TabBar(labelColor: Color(0xff030303), tabs: [
            Tab(
              text: "效果",
            ),
            Tab(
              text: "属性",
            )
          ]),
        ),
        body: TabBarView(children: [
          Container(
              decoration: new BoxDecoration(
                color: new Color(0xffffffff),
                borderRadius: new BorderRadius.circular((AppSize.width(20))),
              ),
              child: ShowEffect()),
          Container(
              decoration: new BoxDecoration(
                color: new Color(0xffffffff),
                borderRadius: new BorderRadius.circular((AppSize.width(20))),
              ),
              child: ShowAttribute()),
        ]),
      ),
    );
  }
}
// 效果
class ShowEffect extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text("WidgetsApp Demo"),
        ),
        body: Container(
          //1 注意:父容器的宽高是200 减去pading后是180
          padding: EdgeInsets.all(10),
          color: Colors.green,
          width: 200,
          height: 200,
          child: new OverflowBox(
            maxHeight: 400, //2 不能小于父容器的高度180
            child: new Container(
              color: Colors.deepOrange,
              width: 200,
              height: 600,
            ),
          ),
        ),
      ),
    );
  }
}
// 属性
class ShowAttribute extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: FutureBuilder(
        future: rootBundle.loadString('lib/markdown/overflowBox.md'),
        builder: (BuildContext context, AsyncSnapshot snapshot) {
          if (snapshot.hasData) {
            return Markdown(
              data: snapshot.data,
              selectable: true,
            );
          } else {
            return Center(
              child: Text("加载中..."),
            );
          }
        },
      ),
    );
  }
}

复制

相关文章
|
1月前
|
Dart JavaScript 前端开发
Flutter 的 Widget 概述与常用 Widgets 与鸿蒙 Next 的对比
Flutter 是 Google 开发的开源 UI 框架,用于快速构建高性能的移动、Web 和桌面应用。Flutter 通过 Widget 构建 UI,每个 UI 元素都是 Widget,包括文本、按钮、图片等。Widget 不仅描述外观,还描述行为,是不可变的。常见的 Widget 包括结构型(Container、Column、Row)、呈现型(Text、Image)、交互型(ElevatedButton)和状态管理型(StatefulWidget)。Flutter 与鸿蒙 Next 在组件化架构、开发语言、布局系统、性能和跨平台支持方面各有优势
75 0
|
4月前
|
开发者 Windows
Flutter笔记:Widgets Easier组件库(9)使用弹窗
Flutter笔记:Widgets Easier组件库(9)使用弹窗
123 3
|
4月前
|
数据安全/隐私保护 Android开发 开发者
Flutter笔记:Widgets Easier组件库-使用隐私守卫
Flutter笔记:Widgets Easier组件库-使用隐私守卫
56 2
|
4月前
|
UED 开发者
Flutter笔记:Widgets Easier组件库(13)- 使用底部弹窗
Flutter笔记:Widgets Easier组件库(13)- 使用底部弹窗
92 2
|
4月前
|
开发者
Flutter笔记:Widgets Easier组件库(5)使用加减器
Flutter笔记:Widgets Easier组件库(5)使用加减器
117 2
|
4月前
|
开发者 容器
Flutter笔记:Widgets Easier组件库(4)使用按钮组
Flutter笔记:Widgets Easier组件库(4)使用按钮组
38 2
|
4月前
|
开发者 容器
Flutter笔记:Widgets Easier组件库(3)使用按钮组件
Flutter笔记:Widgets Easier组件库(3)使用按钮组件
62 2
|
4月前
|
开发者
Flutter笔记:Widgets Easier组件库(11)- 使用提示吐丝(Tip Toasts)
Flutter笔记:Widgets Easier组件库(11)- 使用提示吐丝(Tip Toasts)
63 1
|
4月前
|
开发者
Flutter笔记:Widgets Easier组件库 - 使用标签(Tag)
Flutter笔记:Widgets Easier组件库 - 使用标签(Tag)
128 0
|
4月前
|
开发者
Flutter笔记:Widgets Easier组件库(12)使用消息吐丝(Notify Toasts)
Flutter笔记:Widgets Easier组件库(12)使用消息吐丝(Notify Toasts)
80 0
下一篇
DataWorks