前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter基础widgets教程-OverflowBox篇

Flutter基础widgets教程-OverflowBox篇

原创
作者头像
青年码农
发布2020-10-16 17:50:03
2.8K0
发布2020-10-16 17:50:03
举报
文章被收录于专栏:青年码农青年码农

1 OverflowBox

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

2 构造函数

代码语言:javascript
复制
OverflowBox({
    Key key,
    this.alignment = Alignment.center,
    this.minWidth,
    this.maxWidth,
    this.minHeight,
    this.maxHeight,
    Widget child,
})

3 常用属性

3.1 alignment:对齐方式

代码语言:javascript
复制
alignment:Alignment.center,

3.1.1 顶部左边

代码语言:javascript
复制
alignment:Alignment.topLeft,

3.1.2 顶部中间

代码语言:javascript
复制
alignment:Alignment.topCenter,

3.1.3 顶部右边

代码语言:javascript
复制
alignment:Alignment.topRight,

3.1.4 中部左边

代码语言:javascript
复制
alignment:Alignment.centerLeft,

3.1.5 中部中间

代码语言:javascript
复制
alignment:Alignment.center,

3.1.6 中部右边

代码语言:javascript
复制
alignment:Alignment.centerRight,

3.1.7 底部左边

代码语言:javascript
复制
alignment:Alignment.bottomLeft,

3.1.8 底部中间

代码语言:javascript
复制
alignment:Alignment.bottomCenter,

3.1.9 底部右边

代码语言:javascript
复制
alignment:Alignment.bottomRight,

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

代码语言:javascript
复制
minWidth: 200.0,

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

代码语言:javascript
复制
maxWidth: 200.0,

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

代码语言:javascript
复制
minHeight: 200.0,

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

代码语言:javascript
复制
maxHeight: 200.0,

3.6 child:子widget

代码语言:javascript
复制
child: Text('你好 Flutter'),

4 显示效果

5 widget代码

代码语言:javascript
复制
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("加载中..."),
            );
          }
        },
      ),
    );
  }
}

此代码已共享到码云,已对60多种widget做演示及解释。

https://gitee.com/nmgwap/flutter_app

获取更多资源请关注
获取更多资源请关注

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 OverflowBox
  • 2 构造函数
  • 3 常用属性
    • 3.1 alignment:对齐方式
      • 3.2 minWidth:允许child的最小宽度,如果child宽度小于这个值,则按照最小宽度进行显示
        • 3.3 maxWidth:允许child的最大宽度,如果child宽度大于这个值,则按照最大宽度进行展示
          • 3.4 minHeight:允许child的最小高度,如果child高度小于这个值,则按照最小高度进行显示
            • 3.5 maxHeight:允许child的最大高度,如果child高度大于这个值,则按照最大高度进行展示
              • 3.6 child:子widget
              • 4 显示效果
              • 5 widget代码
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档