美文网首页
2020-05-14 flutter flex 布局

2020-05-14 flutter flex 布局

作者: 唯物唯心是鸡和蛋 | 来源:发表于2020-05-14 18:06 被阅读0次

flex布局错误

image.png
//报错布局代码示例
SingleChildScrollView(
// 由于在不限高的容器中,要紧包children
  child: Column(
    children:[
// 要撑开,与Column要紧包冲突
      Expanded(
        flex:1,
        child:Text('bbb'),
      ),
    ],
  ),
),

SimpleTable组件错误分析

SpacingColumn(
  children:[
    SimpleTable(
      // 默认是表头固定,表体可滚动。
      //...省略各项配置
    ),
  ],
),

在表头固定的情况下,SimpleTable的结构是这样

Column(
  children:[
    tableHeader,
    Expanded(
      flex:1,
      child:ListView(
        children:tableRows,
      ),
    ),
  ],
)

放在我写的SpacingColumn中为啥会报错呢,结构如下

// SpacingColumn
Column(
  children:[
// SimpleTable的结构
    Column( 
      children:[
        tableHeader,
        Expanded(
          flex:1,
          child:ListView(
            children:tableRows,
          ),
        ),
      ],
    ),
  ],
),

Column布局逻辑中,官方文档如下:“Layout each child a null or zero flex factor (e.g., those that are not Expanded) with unbounded main axis constraints and the incoming cross axis constraints.”

with unbounded main axis constraints可以视为最外层的Column的高度是unbounded,因此,SimpleTable的Column会紧包children,而表体的Expanded与之冲突,造成报错。
Column的非Flex元素,会被设置在主轴(在column中是竖直)unbounded盒约束。根据图片中的错误提示,在unbounded盒约束下SimpleTable的Column会紧包children,而children中的表体是Expanded(flex元素),与之冲突,造成报错。

如何改正

SpacingColumn(
  children:[
// 给SimpleTable套个Expanded
    Expanded(
      flex:1,
      child:SimpleTable(
        // 省略
      ),
    ),
  ],
),

为什么套个Expanded就可以了,还要看Column的布局逻辑

相关文章

  • 2020-05-14 flutter flex 布局

    flex布局错误 SimpleTable组件错误分析 在表头固定的情况下,SimpleTable的结构是这样 放在...

  • css 的弹性布局

    flutter 的Column, Row 布局基本跟CSS 的 flex布局很类似,只是flutter单独抽取成R...

  • flutter基础-看完这篇就可以撸app了-有TabBar介绍

    flutter基础-看完这篇就可以撸app了 flex弹性布局学习总结 flutter layout widget...

  • 浅论混合开发

    1. 学习成本和难度 1) Flutter 学习dart,学习flutter API,精通flex布局,和原生协作...

  • flex布局

    认识flex布局 flex布局(Flexible 布局,弹性布局)开启了flex布局的元素叫flex contai...

  • Flutter 插件 从启动到插件开始执行

    2020-05-14 0:00:26Flutter 插件,FlutterPlugin,FlutterEngine ...

  • Flutter之 Flex 布局

    1: 线性布局 所谓线性布局,即指沿水平或垂直方向排布子组件。Flutter中通过Row和Column来实现线性布...

  • flutter 弹性布局Flex

    弹性布局 弹性布局允许子widget按照一定比例来分配父容器空间,弹性布局的概念在其UI系统中也都存在,如H5中的...

  • Flutter 弹性布局 Flex

    Flex 有一个必填参数:direction,用于确定主轴的方向,然后就可以在 children 里写 子Widg...

  • 初见FLEX

    FLEX布局 一种新的布局方式,flex布局 flex布局与方向无关 flex布局可以实现空间自动分配、自动对齐。...

网友评论

      本文标题:2020-05-14 flutter flex 布局

      本文链接:https://www.haomeiwen.com/subject/sxcxohtx.html