Code前端首页关于Code前端联系我们

Flutter布局参考:扩展

terry 2年前 (2023-09-23) 阅读数 67 #移动小程序

扩展

扩展可以用Flex\Flexbox布局来实现,非常适合为多个元素分配空间。 Flutter 布局参考手册:Expanded

Row(
  children: <Widget>[
    Expanded(
      child: Container(
        decoration: const BoxDecoration(color: Colors.red),
      ),
      flex: 3,
    ),
    Expanded(
      child: Container(
        decoration: const BoxDecoration(color: Colors.green),
      ),
      flex: 2,
    ),
    Expanded(
      child: Container(
        decoration: const BoxDecoration(color: Colors.blue),
      ),
      flex: 1,
    ),
  ],
),
复制代码

ConstrainedBox

默认情况下,大多数组件使用尽可能少的空间:Flutter 布局参考手册:Expanded

Card(child: const Text('Hello World!'), color: Colors.yellow)
复制代码

ConstrainedBox 允许小部件使用它想要的剩余空间。 Flutter 布局参考手册:Expanded

ConstrainedBox( 
  constraints: BoxConstraints.expand(),
  child: const Card(
    child: const Text('Hello World!'), 
    color: Colors.yellow,
  ), 
),
复制代码

您可以使用函数BoxConstraints来确定小部件可以使用多少空间 - 通过设置高度/// /max 属性。

BoxConstraints.expand 允许组件使用无限的(所有可用的)空间,除非另有说明: Flutter 布局参考手册:Expanded

ConstrainedBox(
  constraints: BoxConstraints.expand(height: 300),
  child: const Card(
    child: const Text('Hello World!'), 
    color: Colors.yellow,
  ),
),
复制代码

上面的代码相当于以下代码:

ConstrainedBox(
  constraints: BoxConstraints(
    minWidth: double.infinity,
    maxWidth: double.infinity,
    minHeight: 300,
    maxHeight: 300,
  ),
  child: const Card(
    child: const Text('Hello World!'), 
    color: Colors.yellow,
  ),
),
复制代码

作者: Yuqi://juejin. im/post /5cfe0d136fb9a07efc497d7d
来源:掘金
版权属于作者。商业转载请联系作者授权。非商业转载请注明出处。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门