Flutter基础widgets教程-SizedOverflowBox篇

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

1 SizedOverflowBox

SizedOverflowBox主要的布局行为有两点: 1 尺寸部分。通过将自身的固定尺寸,传递给child,来达到控制child尺寸的目的;undefined

2 超出部分。可以突破父节点尺寸的限制,超出部分也可以被渲染显示,与OverflowBox类似。

2 构造函数

SizedOverflowBox({
    Key key,
    @required this.size,
    this.alignment = Alignment.center,
    Widget child,
})

复制

3 常用属性

3.1 size:固定的尺寸

size: Size(100.0, 200.0),

复制

3.2 alignment:对齐方式

alignment:Alignment.topLeft,

复制

3.2.1 顶部左边

alignment:Alignment.topLeft,

复制

3.2.2 顶部中间

alignment:Alignment.topCenter,

复制

3.2.3 顶部右边

alignment:Alignment.topRight,

复制

3.2.4 中部左边

alignment:Alignment.centerLeft,

复制

3.2.5 中部中间

alignment:Alignment.center,

复制

3.2.6 中部右边

alignment:Alignment.centerRight,

复制

3.2.7 底部左边

alignment:Alignment.bottomLeft,

复制

3.2.8 底部中间

alignment:Alignment.bottomCenter,

复制

3.2.9 底部右边

alignment:Alignment.bottomRight,

复制

3.3 child:子控件

child: Text("内容"),

复制

4.显示效果

image.png

5.代码

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
// 字体适配
import '../../utils/app_size.dart';
class ListSizedOverflowBox extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      length: 2,
      child: Scaffold(
        appBar: AppBar(
          title: Text('SizedOverflowBox'),
          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("SizedOverflowBox"),
        ),
        body: Container(
          color: Colors.green,
          alignment: Alignment.topRight,
          width: 200.0,
          height: 200.0,
          padding: EdgeInsets.all(5.0),
          child: SizedOverflowBox(
            size: Size(100.0, 200.0),
            child: Container(
              color: Colors.red,
              width: 200.0,
              height: 100.0,
            ),
          ),
        ),
      ),
    );
  }
}
// 属性
class ShowAttribute extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: FutureBuilder(
        future: rootBundle.loadString('lib/markdown/sizedOverflowBox.md'),
        builder: (BuildContext context, AsyncSnapshot snapshot) {
          if (snapshot.hasData) {
            return Markdown(
              data: snapshot.data,
              selectable: true,
            );
          } else {
            return Center(
              child: Text("加载中..."),
            );
          }
        },
      ),
    );
  }
}

复制

相关文章
|
3月前
|
索引
Flutter.源码分析.flutter/packages/flutter/lib/src/widgets/scroll_view.dart/GridView
Flutter.源码分析.flutter/packages/flutter/lib/src/widgets/scroll_view.dart/GridView
32 0
|
3月前
|
Android开发 iOS开发
Flutter.源码分析 flutter/packages/flutter/lib/src/widgets/scroll_view.dart/ScrollView
Flutter.源码分析 flutter/packages/flutter/lib/src/widgets/scroll_view.dart/ScrollView
54 0
|
3月前
|
开发者
Flutter.源码分析 flutter/packages/flutter/lib/src/widgets/scroll_view.dart/BoxScrollView
Flutter.源码分析 flutter/packages/flutter/lib/src/widgets/scroll_view.dart/BoxScrollView
34 0
|
3月前
Flutter.源码分析.flutter/packages/flutter/lib/src/widgets/scroll_view.dart/ListView
Flutter.源码分析.flutter/packages/flutter/lib/src/widgets/scroll_view.dart/ListView
30 0
|
7月前
|
Dart 前端开发 开发工具
谷歌移动UI框架Flutter教程之Widget
谷歌移动UI框架Flutter教程之Widget
|
Web App开发 JavaScript 应用服务中间件
Flutter Web网站搭建教程
曾几何时,你有没有一个搭个人网站的冲动,我这个想法在我第一次开始写博客就有了,可就是没有搭起来,直到我看到flutter有了web支持,我就在想,是时候了,必须且一定要做,于是乎我就搭建了现在的网站ibaozi.cn
420 0
Flutter Web网站搭建教程
|
XML Java Android开发
Flutter(四)——基础组件
Flutter(四)——基础组件
325 0
Flutter(四)——基础组件
|
存储 索引
Flutter从0到1实现高性能、多功能的富文本编辑器(基础实战篇)
在上一章中,我们分析了一个富文本编辑器需要有哪些模块组成。在本文中,让我们从零开始,去实现自定义的富文本编辑器。
|
Android开发 开发者
Flutter教程 — 路由管理与Navigator进阶使用(老油条看了都说好!!!)
在上一节我们已经讲了Flutter路由管理与Navigator基础使用,有兴趣或者对这一块还不太了解的同学可以去看看。 但是仅仅这样时不够的 在实际项目中这些怎么会够呢???现在让我们来看看这些骚操作…
Flutter教程 — 路由管理与Navigator进阶使用(老油条看了都说好!!!)
|
前端开发 程序员
Flutter路由管理与Navigator基础使用
Flutter的路由管理与Navigator基础使用
Flutter路由管理与Navigator基础使用