flutter应用开发--Expanded组件作用:1.子组件尽可能地填充主轴方向上剩余的空间;2.通过 flex 属性调整 Expanded 组件的填充比例

在 Flutter 里,Expanded 组件是 Flexible 组件的子类,它可让子组件尽可能地填充主轴方向上剩余的空间。你能够通过 flex 属性调整 Expanded 组件的填充比例。下面为你详细介绍如何操作:

1. flex 属性的作用

flex 属性是一个整数,它代表了 Expanded 组件在主轴方向上分配剩余空间的比例。默认情况下,flex 的值为 1。当有多个 Expanded 组件存在于同一个 RowColumn 中时,剩余空间会按照它们的 flex 值比例进行分配。

2. 代码示例

以下是一个使用 Row 组件和多个 Expanded 组件的示例,展示了如何调整填充比例:

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Expanded Flex Ratio'),
        ),
        body: Center(
          child: Row(
            children: [
              // 第一个 Expanded 组件,flex 值为 1
              Expanded(
                flex: 1,
                child: Container(
                  color: Colors.red,
                  height: 100,
                  child: const Center(child: Text('Flex 1')),
                ),
              ),
              // 第二个 Expanded 组件,flex 值为 2
              Expanded(
                flex: 2,
                child: Container(
                  color: Colors.blue,
                  height: 100,
                  child: const Center(child: Text('Flex 2')),
                ),
              ),
              // 第三个 Expanded 组件,flex 值为 3
              Expanded(
                flex: 3,
                child: Container(
                  color: Colors.green,
                  height: 100,
                  child: const Center(child: Text('Flex 3')),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

3. 代码解释

  • 在上述代码中,Row 组件内有三个 Expanded 组件,它们的 flex 值分别为 123
  • Row 组件分配空间时,会先计算出剩余的可用空间,然后按照 flex 值的比例分配给这三个 Expanded 组件。
  • 这里的比例为 1:2:3,也就是说,第一个 Expanded 组件会占据剩余空间的 1/(1 + 2 + 3) = 1/6,第二个 Expanded 组件会占据 2/6,第三个 Expanded 组件会占据 3/6

4. 注意事项

  • flex 属性只能用于 ExpandedFlexible 组件。
  • RowColumn 中只有一个 Expanded 组件,那么它会填充所有剩余空间,flex 值的具体大小不会影响其填充效果。

通过调整 Expanded 组件的 flex 属性,你可以灵活地控制子组件在主轴方向上的填充比例,从而实现各种布局需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值